存取具有無效名稱的物件屬性
在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中文網其他相關文章!