访问具有无效名称的对象属性
在 PHP 中,可能会遇到具有非法或无效字符(例如破折号)的属性的对象(-)。虽然常规属性访问器失败,但有一些解决方法可以检索这些值。
解决方案 1:括号表示法
要访问名称无效的属性,请使用括号表示法用大括号 ({}) 括起来的属性名称:
$object->{'todo-items'};
解决方案2:变量名称和连接
或者,将属性名称分配给变量并将其与 $object 变量连接:
$todolist = 'todo-items'; echo $object->$todolist;
示例:
使用示例对象转储提供:
$x = (object) [ 'completed-count' => '0', 'description' => 'Description String', 'id' => '12345', 'todo-items' => (object) [ 'todo-item' => (object) [ 'completed' => 'false', 'content' => 'content string here', 'created-on' => '2009-04-16T20:33:31Z', 'creator-id' => '23423', 'id' => '234', 'position' => '1', 'responsible-party-id' => '2844499', 'responsible-party-type' => 'Person', 'todo-list-id' => '234234', ], ], ]; echo $x->{'todo-items'}[0]->{'todo-item'}->content;
其他提示:
要将对象转换为数组,您可以使用问题和答案中提供的代码片段:
public function toArray() { $array = array(); foreach ($this->_data as $key => $value) { if ($value instanceof StdClass) { $array[$key] = $value->toArray(); } else { $array[$key] = $value; } } return $array; }
以上是如何在 PHP 中访问包含无效字符的对象属性?的详细内容。更多信息请关注PHP中文网其他相关文章!