この記事の例では、PHP での STDCLASS の使用法について説明します。詳細は次のとおりです: PHP の STDCLASS は開発アプリケーションではあまり使用されませんが、PHP の STDCLASS の使い方を見てみましょう。 WordPress の多くの場所で、stdClass を使用してオブジェクト (通常は配列の形式) を定義し、次に get_object_vars を使用して定義されたオブジェクトを配列に「変換」します。次のコードを示します:
$tanteng = new stdClass(); $tanteng->name = 'tanteng'; $tanteng->email = 'xxx@qq.com'; $info = get_object_vars($tanteng); print_r($info); exit;
。
出力:
Array ( [name] => tanteng [email] => xxx@qq.com )
get_object_vars の関数は、オブジェクト属性で構成される連想配列を返すことです。その効果は実際には次のような配列を定義するのと同じです:
$tanteng = array(); $tanteng['name'] = 'tanteng'; $tanteng['email'] = 'xxx@qq.com';
これは次のように理解できます: stdClass はメンバ変数やメンバ メソッドを持ちません。新しい stdClass は「空」をインスタンス化します。 class.』オブジェクト、それ自体は意味がありませんが、それを定義するために stdClass を使用する利点は何ですか?
次のコード:
ここでは、$myUser に値 $user が割り当てられています。新しいメモリ ストレージ変数 $myUser はありません。引き続き stdClass オブジェクトを参照します。$myUser のプロパティ ページを変更すると、プログラム内に新しいコピーを作成する代わりに、stdClass を使用して $user のプロパティが変更されます。メモリのオーバーヘッドを節約できます。
実行結果:
$user = new stdClass(); $user->name = 'gouki'; $user->hehe = 'hehe'; $myUser = $user; $myUser->name = 'flypig'; print_r($user); print_r($myUser); print_r($user);
$user が配列で、$myUser に割り当てられている場合、$myUser の属性を変更すると、stdClass 属性が変更されることがわかります。その後、コピーが $myUser にコピーされ、システムのオーバーヘッドが増加します
もちろん、その逆を実行して配列をオブジェクトに変換することもできます:
stdClass Object ( [name] => flypig [hehe] => hehe ) stdClass Object ( [name] => flypig [hehe] => hehe ) stdClass Object ( [name] => flypig [hehe] => hehe )
結果の出力:
$hehe['he1'] = 'he1'; $hehe['he2'] = 'he2'; $hh = (object) $hehe; print_r($hh);
この記事が役立つことを願っています。 PHPプログラミングをしている皆さん。
PHP での STDCLASS 使用例の分析に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。