我想知道为什么这不起作用?我正在设置一个属性(数组)和一个从类中的方法得到的值,我想我正在做一些我不应该做的事情,但我会非常感谢这两个解释为什么它不工作以及如何运作;)
我是新手
Class Widget{
public $settings = array('setting1',array(
'subsetting1'=> 1,
'subsetting2' =>$this->WidgetFunction()
));
function WidgetFunction() {
echo 'works';
}
}
Run Code Online (Sandbox Code Playgroud)
获得以下错误:
Parse error: syntax error, unexpected T_VARIABLE on line 7
(where WidgetFunction is called)
Run Code Online (Sandbox Code Playgroud)
类成员变量称为"属性".[...]它们是通过使用public,protected或private之一,然后是普通变量声明来定义的.此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估.
您应该在构造函数中指定此值.
Class Widget {
public $settings;
function __construct() {
$this->settings = array(
'setting1' => array(
'subsetting1' => 1,
'subsetting2' => $this->WidgetFunction())
);
}
function WidgetFunction() {
echo 'works';
}
}
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我想你可能想用'setting1'作为数组中数组的索引 - 正如我在我的代码示例中所做的那样?)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |