我正在尝试提供一个成员变量作为类方法的默认值。
我知道将变量用作非类函数的默认值是不可能的,但似乎应该有一种方法可以在类中执行此操作。
必须有办法做到这一点 - 也许我的语法错误了:
class test{
private $test = '';
__construct(){
$this->test = "whatever";
}
function getTest($var = $this->test){
echo $var;
}
}
但这会引发错误,例如:
$ this-> test作为函数参数默认值是不允许的。意想不到的T_VARIABLE。
有什么想法吗?
答案 0 :(得分:10)
来自manual: -
默认值必须是常量 表达,而不是(例如)a 变量,类成员或函数 调用
我可能会做类似的事情: -
<?php
class Test {
public function __construct() {
$this->test = "whatever";
}
public function getTest($var=NULL) {
if (is_null($var)) {
$var = $this->test;
}
echo $var;
}
}
?>
答案 1 :(得分:3)
我相信你只能在该语法中使用常量(字符串,数字等)(但我可能错了)。
我建议这个替代方案:
function getTest($var = null) {
if (is_null($var)) {
$var = $this->test;
}
}