[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает значение переменной по умолчанию
tony733
Доброго времени суток всем.
Суть вопроса следующая.

Есть скрипт DB.php

final class DB extends DatabaseObject {

public static function Open($database = DBSettings::$DBNAME, $hostname = DBSettings::$HOST,
$hostport = DBSettings::$PORT, $username = DBSettings::$USER,
$password = DBSettings::$PASS) {
/* что-то*/
}
/*что-то*/
}

и DBSettings.php

static final class DBSettings {
public static final $HOST = "localhost";
public static final $DBNAME = "atata";
public static final $PORT = "3306";
public static final $USER = "root";
public static final $PASS = "root_pass";
public static final $ENCODING = "cp1251";
}

DB подтягивает DBSettings с помощью autoload.
Но я получаю ошибку...
Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in /var/www/classes/Database/DB.php on line 7

Действительно ли так нельзя - использовать в качестве значения по умолчанию статичные свойста другого класса? Или я ошибаюсь и смотрю не туда?



Спустя 17 минут, 34 секунды (26.02.2012 - 19:44) Rand написал(а):
Цитата (tony733 @ 26.02.2012 - 22:26)
нельзя - использовать в качестве значения по умолчанию статичные свойста другого класса

И не только свойства класса. Значениями по умолчанию могут быть только константы.

Спустя 22 минуты, 36 секунд (26.02.2012 - 20:07) Игорь_Vasinsky написал(а):
Rand
function alert($count, $say = 'Ахтунг!')
{
for($i = 0; $i<$count; $i++)
echo $say.'<br />';
}

alert(4);


только константы?

Спустя 9 минут, 8 секунд (26.02.2012 - 20:16) Placido написал(а):
Проблема в том, что свойства не могут объявляться как final.
Цитата
Note: Properties cannot be declared final, only classes and methods may be declared as final.

Спустя 1 час, 11 минут, 44 секунды (26.02.2012 - 21:27) Rand написал(а):
Игорь_Vasinsky
'Ахтунг!' - это строковая константа. А вот так нельзя:
function foo() {
return 'Ахтунг!';
}

function bar($count, $say = foo()) {
for($i = 0; $i<$count; $i++)
echo $say.'<br />';
}


Только константы и константные выражения.

Спустя 3 минуты, 19 секунд (26.02.2012 - 21:31) Игорь_Vasinsky написал(а):
function foo() {
return 'Ахтунг!';
}

$var = foo();

function bar($count, $say = $var) {
for($i = 0; $i<$count; $i++)
echo $say.'<br />';
}

Спустя 6 минут, 49 секунд (26.02.2012 - 21:38) Rand написал(а):
Так нельзя ))

Спустя 1 минута, 34 секунды (26.02.2012 - 21:39) Игорь_Vasinsky написал(а):
да вкурсе) но написать решил. wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.