我在屏幕上打印了以下内容:
array(1) {
[120]=>
object(EE_Datetime)#4364 (8) {
["_props_n_values_provided_in_constructor":protected]=>
array(12) {
["DTT_ID"]=>
string(3) "120"
["EVT_ID"]=>
string(4) "2152"
["DTT_name"]=>
string(0) ""
["DTT_description"]=>
string(0) ""
["DTT_EVT_start"]=>
string(19) "2016-06-19 07:00:00"
我需要访问DTT_EVT_start
键,但正如您所见,该对象受到保护。什么是最好的解决方案,这将允许我访问有问题的密钥?我知道Reflection类,但我不确定这是否是最好的方法。感谢
答案 0 :(得分:0)
_props_n_values_provided_in_constructor
是Array
属性,因此您只需要通过反射获取它,更改其可见性并获取其值
class TestClass
{
protected $_props_n_values_provided_in_constructor = [];
public function __construct($arr)
{
$this->_props_n_values_provided_in_constructor = $arr;
}
}
和代码:
$t = new TestClass(['DTT_EVT_start' => 'some date']);
$refl = new ReflectionClass($t);
$property = $refl->getProperty('_props_n_values_provided_in_constructor');
$property->setAccessible(true);
$values = $property->getValue($t);
echo $values['DTT_EVT_start'];