PHP での STDCLASS 使用法の分析例

高洛峰
リリース: 2016-12-21 14:31:41
オリジナル
1106 人が閲覧しました

この記事の例では、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 サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!