Подскажите, почему не работает?
class my1 {
private static $a1='это a1';
public function f1 ($param=self::$a1){
echo $param;
}
}
$obj1=new my1;
$obj1->f1();
На строчке, где в функцию передаётся параметр по умолчанию, выводится ошибка:
class my1 {
private static $a1='это a1';
public function f1 ($param=self::$a1){
echo $param;
}
}
$obj1=new my1;
$obj1->f1();
Цитата |
Parse error: syntax error, unexpected '$a1' (T_VARIABLE), expecting identifier (T_STRING) or class (T_CLASS) in .... |
class my1 {
private static $a1='это a1';
public function f1 ($param = null){
$param = is_null($param) ? self::$a1 : $param;
echo $param;
}
}
$obj1=new my1;
$obj1->f1();
self::$a1
self::a1
Цитата (AllesKlar @ 27.01.2015 - 19:33) |
Передать, как аргумент - никак. https://php.net/manual/ru/functions.arguments.php Свойство класса передавать в методы не нужно, оно и так доступно напрямую из метода. |
Цитата (johniek_comp @ 27.01.2015 - 19:44) |
class my1 { поправьте плз как правильно self::$a1 или self::a1 |
Цитата (AllesKlar @ 27.01.2015 - 21:40) |
Arcoslov ну ты в мануал по ссылке ходил? Там жирным текстом выделено: Значения аргументов по умолчанию |