如何分配函数';将数组输出到PHP中的变量?
下面是我的简化代码,它给了我错误。这可能是一件非常简单的事情,但它让我感到困惑如何分配函数';将数组输出到PHP中的变量?,php,oop,Php,Oop,下面是我的简化代码,它给了我错误。这可能是一件非常简单的事情,但它让我感到困惑 class MyController extends ParentController { public $pet_list = $this->pet_list_array(); //Parse error: syntax error, unexpected T_VARIABLE in ...... public function pet_list_array() { r
class MyController extends ParentController {
public $pet_list = $this->pet_list_array();
//Parse error: syntax error, unexpected T_VARIABLE in ......
public function pet_list_array() {
return array('cat'=>'Steve\'s Cat',
'dog'=>'Fiona\'s Dog',
'lion'=>'John\'s Lion');
}
}
如果我这样做,我会得到一个不同的错误
public $pet_list = pet_list_array();
//Parse error: syntax error, unexpected '(', expecting ',' or ';' in.....
但是如果我这样做
public$pet\u list=pet\u list\u数组代码>(函数名后没有圆括号),它似乎工作正常。这是正常的行为吗?我有点不确定。您的问题是无法在类定义中调用类方法。创建一个_construct()方法并将其设置在那里,如下所示:
class MyController extends ParentController {
public $pet_list;
public function __construct(){
$this->pet_list = $this->pet_list_array();
}
public function pet_list_array() {
return array('cat'=>'Steve\'s Cat',
'dog'=>'Fiona\'s Dog',
'lion'=>'John\'s Lion');
}
}
当然,如果$pet_list和pet_list_array()始终返回相同的值,则可能不需要在同一个类中同时使用它们。默认情况下,只能使用标量值、数组和null
。您可以在PHP手册AFAIK中找到此信息。