Аргумент функции PHP по умолчанию как T_VARIABLE?

Я пытаюсь предоставить переменную-член как значение по умолчанию для метода класса.

Я знаю, что невозможно использовать переменную в качестве значения по умолчанию для функции non-class, но похоже, что в этом классе должен быть способ сделать это.

Должен быть способ сделать это – возможно, у меня есть неправильный синтаксис:

class test{ private $test = ''; __construct(){ $this->test = "whatever"; } function getTest($var = $this->test){ echo $var; } } 

но это вызывает ошибку:

$ this-> test как значение параметра аргумента функции не разрешено. неожиданный T_VARIABLE.

Есть предположения?

Из руководства : –

Значение по умолчанию должно быть константным выражением, а не (например) переменной, членом класса или вызовом функции.

Я бы просто сделал что-то вроде:

 <?php class Test { public function __construct() { $this->test = "whatever"; } public function getTest($var=NULL) { if (is_null($var)) { $var = $this->test; } echo $var; } } ?> 

Я считаю, что вы можете использовать только константы (строки, числа и т. Д.) В этом синтаксисе (но я мог ошибаться в этом).

Я предлагаю эту альтернативу:

 function getTest($var = null) { if (is_null($var)) { $var = $this->test; } }