PHP カーネルがモジュールの初期化操作を実行すると、この関数が自動的にロードされ、stdClass クラスの登録操作も実行されます。 stdClass クラスは、メンバー変数やメンバー メソッドを持たないクラスです。 すべての マジック メソッド、親クラス、インターフェイスなどは、初期化中に NULL に設定されます。 PHP ではメソッドをクラスに動的に追加できないため、このクラスは動的属性を処理するためにのみ使用できますが、これも一般的な使用法です。したがって、次のメソッドは set インターセプターをトリガーしません stdclass は基底クラスとして使用でき、その最大の特徴は、定義時にメンバー変数を指定することなく、(その派生クラスが) 自動的にメンバー変数を追加できることです。
すべての
php 変数1. stdclass を使用します:
$andy = array(); $andy = (object)$andy; $andy->a = 1; $andy->b = 2; $andy->c = 3;
このようにして、数量 a、b、c が stdclass に入力されます。空のオブジェクトを作成するには $andy = new Andy が必要であり、最初にクラス Andy{} が存在する必要があるため、これによりトラブルが軽減されます。別の例:
<?php $a = new stdClass(); $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
は次を出力します: stdClass Object ( [id] => 11 [username] => me )。
多くの場合、このメソッドは、構文が異なるだけであるarray
の使用を置き換えるために使用されます。 2. 読んでください:
stdClass Object ( [getWeatherbyCityNameResult] => stdClass Object ( [string] => Array ( [0] => 四川 [1] => 成都 [2] => 56294 [3] => 56294.jpg [4] => 2009-5-17 13:52:08 [5] => 26℃/19℃ [6] => 5月17日 阴转阵雨 ) ) )
実際、配列に似ていますが、アクセス方法が少し異なります。私たちは通常、配列にアクセスするために array['key'] を使用することに慣れています。
この種の stdClass の場合、上記の例のように、$weather->getWeatherbyCityNameResult->string[0] は次のように属性にアクセスでき、結果は「四川省」になります。
3. インスタンス化、新規。
これら 2 つのコードを比較します。
<?php $a = array(1=>2,2=>3); $a = (object)$a; $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
は、 stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [username] => me ) を出力します。
<?php $a = array(1=>2,2=>3); $a = (object)$a; $a = new stdClass(); $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
は、 stdClass Object ( [id] => 11 [username] => me ) を出力します。
new でインスタンス化した後、以前の配列はクリアされ、インスタンス化されなかった場合、stdClass はすべての要素を保持することがわかります。
関数内で global とstatic を使用し、新しい stdclass が参照される場合、&new stdclass は無効になることに注意してください。参照の使用を避け、新しい stdclass を直接使用する必要があります。
以上がPHPでのstdClassの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。