この記事では、主に PHP での STDCLASS の使用法を紹介し、PHP での STDCLASS の機能、原理、使用法および関連する側面をメモ の例の形で分析します。この記事では、PHP での STDCLASS の使用法について説明します。詳細は次のとおりです。PHP の STDCLASS は開発アプリケーションではあまり使用されませんが、PHP の STDCLASS の使用法を見てみましょう。 WordPress の多くの場所では、stdClass を使用して
object
(通常は
array
の形式) を定義し、次に get_
object
_vars を使用して、定義されたオブジェクトを に「変換」します。コードは次のとおりです:
1 2 3 4 5 6 | <a href= "https://www.php.cn/wiki/58.html" target= "_blank" > $tanteng = new stdClass();
$tanteng ->name = 'tanteng';
$tanteng ->email = 'xxx@qq.com';
$info = get_object_vars( $tanteng );
print_r( $info );
exit ;</a>
|
出力:
1 | Array ( [name] => tanteng [email] => xxx@qq.com )
|
ログイン後にコピー
get_object_vars の関数は、オブジェクトのプロパティで構成される連想配列を返すことです。その効果は実際には次のように配列を定義するのと同じです:
1 2 3 | $tanteng = array ();
$tanteng ['name'] = 'tanteng';
$tanteng ['email'] = 'xxx@qq.com';
|
ログイン後にコピー
これは次のように理解できます: stdClass は組み込みクラスであり、メンバー
変数
もメンバー メソッド
もありません。 「空の」オブジェクト自体には意味がありませんが、それを定義するために stdClass を使用する利点は何ですか?
次のコード:
1 2 3 4 5 6 7 8 | $user = new stdClass();
$user ->name = 'gouki';
$user ->hehe = 'hehe';
$myUser = $user ;
$myUser ->name = 'flypig';
print_r( $user );
print_r( $myUser );
print_r( $user );
|
ログイン後にコピー
ここでは $myUser に値 $user が割り当てられていますが、実際には新しいメモリ ストレージ変数は開かれていません。$myUser は引き続き参照します。 stdClass オブジェクトは、$myUser のプロパティ ページを変更することで、$user のプロパティを変更します。プログラム内にそのような操作が多数ある場合、新しいコピーは作成されません。 stdClass はメモリのオーバーヘッドを節約できます。 実行結果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | stdClass Object
(
[name] => flypig
[hehe] => hehe
)
stdClass Object
(
[name] => flypig
[hehe] => hehe
)
stdClass Object
(
[name] => flypig
[hehe] => hehe
)
|
ログイン後にコピー
$user が配列であり、$myUser に割り当てられている場合、$myUser の属性を変更すると、stdClass 属性が変更されることがわかります。 、コピーが $myUser にコピーされ、システムのオーバーヘッドが増加します。
もちろん、その逆を実行して配列をオブジェクトに変換することもできます:
1 2 3 4 | $hehe ['he1'] = 'he1';
$hehe ['he2'] = 'he2';
$hh = (object) $hehe ;
print_r( $hh );
|
ログイン後にコピー
結果を出力します:
1 | stdClass Object ( [he1] => he1 [he2] => he2 )
|
ログイン後にコピー
以上がPHPのSTDCLASSとは何ですか?使い方?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。