是否可以在构造函数中为类定义属性。 例如,我将关联数组传递给类构造函数,并且我希望根据关联数组中的内容来声明和设置该类的属性。
TIA
最佳答案
class Foo{
function __construct($arr){
foreach($arr as $k => $v)
$this->$k = $v;
}
}
您可以查看constructor/desctructor manual和 properties manual .
需要注意的是,由于您没有在类中定义所有属性,因此所有属性都设置为 public ,恕我直言,这有点危险。我认为使用 reflection 可能可以实现同样的目标。我刚刚更深入地检查了反射,这是不可能的(使用 PHP5),因为能够从 PHP6 可能附带的反射中做到这一点是有意义的。
完整样本
<?php
class Foo{
function __construct($arr){
foreach($arr as $k => $v)
$this->$k = $v;
}
function getBar(){
return $this->bar;
}
}
$bar = new Foo(array(
'bar' => 'bar',
'foo' => 'foo'
)
);
var_dump($bar->bar);
?>
关于php 对象在构造函数中定义和设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739825/