【发布时间】:2012-06-03 02:20:11
【问题描述】:
是否可以使用关联数组在 php 中初始化对象的私有或受保护成员。
例如:
class TestClass
{
public $_name;
public $_age;
public function __construct(array $params)
{
??????
}
}
$testClass = new TestClass(
array(
'name' => 'Bob',
'age' => '29',
)
);
我想知道是否有一个优雅的解决方案 - 也许通过实现一个 spl 接口或其他方式?
【问题讨论】:
-
显而易见的解决方案就是构造函数中的
$this->_name = $params['name'];。你的对象做什么?解决方案是否需要比这更复杂? -
@bob-the-destroyer - 提供的示例是一个简化的用例。实际上会有很多属性需要设置——所有这些都是可选的。
-
循环遍历
$this或$params会解决吗?您提到了 SPL - 您是否考虑让对象的目的表现为数组或其他什么? -
是的,我认为使用 spl 可能会有类似的解决方案
-
去做吧,它有效。如何做到这一点取决于您的需求。