14

私はこのPHPコードのコラボレーションに取り組んでおり、一部の人々はこのようにPHP StdClassフィールドにアクセスしているようです

$body->head

などなど

$body->{'head'}

私が知る限り、これらは同等です。彼らは?どちらを使うかは重要ですか?あなたはどちらの方法を好みますか?ここで注意すべき癖はありますか?

4

2 に答える 2

21

それらは同等です。次のような忌まわしい属性名を使用する場合にのみ、2番目のバージョンが必要です。

$data->{'what * the ! thing'}

これは、純粋なデータ配列をオブジェクトに変換する場合に発生することがあります。

ただし、二重引用符バージョンもあります。これは、実際に変数属性名(基本的にはオブジェクトの変数変数)が必要な場合に少し意味があります。

$data->{"attr$index"}
于 2011-04-18T08:22:13.587 に答える
2

この {'field-name'} のような異常なプロパティ名を持つクラスを作成する必要があります。

class myclass
{
    public {'field-name-with-minus-sign'} = "something";
}

Id は機能しません。なんで?私はこのようなものを使いたくありません:

$myclass = new stdClass();
$myclass->{'dumb-property-name'}

こういう物件が多いから。

于 2012-02-17T02:55:06.933 に答える