我尝试创建一个具有如下属性的类:
class foo{
private $dbFields['test']=array("mobilePhone","address");
private $dbFields['test2']=array("mobilePhone","address",'colour');
}
但无效。
PHP解析错误:语法错误,意外' [',期待','或';'在
我必须这样做,结果相同;但对我来说编辑不太友好
class foo{
private $dbFields=array('test'=>array("mobilePhone","address"),'test2'=>array("mobilePhone","address",'colour'));
}
无论如何都要实现原始结构或类似的东西?
答案 0 :(得分:5)
您可以使用以下class properties语法执行此操作:
<?php
class foo {
private $dbFields = array(
'test' => array("mobilePhone","address"),
'test2' => array("mobilePhone","address","colour")
);
}
如果值是动态的,而不是外观(如对数据库列的引用),那么您应该按照B.Desai的回答建议将值传递给类构造函数。
如果值永远不会改变,或许使用class constant会更好(PHP&gt; = 5.3.0)。
<?php
class foo {
const dbFields = array(
'test' => array("mobilePhone","address"),
'test2' => array("mobilePhone","address","colour")
);
}
答案 1 :(得分:3)
始终在构造函数中初始化类成员。这样,您也可以将任何动态值分配给数据成员。
class foo{
private $dbFields;
function __construct()
{
$this->dbFields['test']=array("mobilePhone","address");
$this->dbFields['test2']=array("mobilePhone","address",'colour');
}
function getFields()
{
return $this->dbFields;
}
}
$obj = new foo();
print_r($obj->getFields());