ホームページ > バックエンド開発 > PHPチュートリアル > PHP で無効な文字を含むオブジェクト プロパティにアクセスするにはどうすればよいですか?

PHP で無効な文字を含むオブジェクト プロパティにアクセスするにはどうすればよいですか?

DDD
リリース: 2024-12-14 01:57:10
オリジナル
528 人が閲覧しました

How Can I Access Object Properties with Invalid Characters in PHP?

無効な名前でオブジェクト プロパティにアクセスする

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート