ホームページ  >  記事  >  バックエンド開発  >  PHPのSTDCLASSとは何ですか?使い方?

PHPのSTDCLASSとは何ですか?使い方?

伊谢尔伦
伊谢尔伦オリジナル
2017-06-30 10:10:203756ブラウズ

この記事では、主に PHP での STDCLASS の使用法を紹介し、PHP での STDCLASS の機能、原理、使用法および関連する側面をメモ の例の形で分析します。この記事では、PHP での STDCLASS の使用法について説明します。詳細は次のとおりです。PHP の STDCLASS は開発アプリケーションではあまり使用されませんが、PHP の STDCLASS の使用法を見てみましょう。 WordPress の多くの場所では、stdClass を使用して

object

(通常は

array

の形式) を定義し、次に 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 を使用する利点は何ですか?

次のコード:

$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 はメモリのオーバーヘッドを節約できます。 実行結果:
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)

$user が配列であり、$myUser に割り当てられている場合、$myUser の属性を変更すると、stdClass 属性が変更されることがわかります。 、コピーが $myUser にコピーされ、システムのオーバーヘッドが増加します。

もちろん、その逆を実行して配列をオブジェクトに変換することもできます:

$hehe['he1'] = 'he1';
$hehe['he2'] = 'he2';
$hh = (object) $hehe;
print_r($hh);

結果を出力します:

stdClass Object ( [he1] => he1 [he2] => he2 )

以上がPHPのSTDCLASSとは何ですか?使い方?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。