無効な名前でオブジェクト プロパティにアクセスする
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 中国語 Web サイトの他の関連記事を参照してください。