ホームページ > バックエンド開発 > PHPチュートリアル > PHPのSTDCLASSとは何ですか?使い方?

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

伊谢尔伦
リリース: 2023-03-12 07:10:01
オリジナル
3843 人が閲覧しました

この記事では、主に 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 = &#39;tanteng&#39;;

$tanteng->email = &#39;xxx@qq.com&#39;;

$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[&#39;name&#39;] = &#39;tanteng&#39;;

$tanteng[&#39;email&#39;] = &#39;xxx@qq.com&#39;;

ログイン後にコピー

これは次のように理解できます: stdClass は組み込みクラスであり、メンバー

変数

もメンバー メソッド

もありません。 「空の」オブジェクト自体には意味がありませんが、それを定義するために stdClass を使用する利点は何ですか?

次のコード:

1

2

3

4

5

6

7

8

$user = new stdClass();

$user->name = &#39;gouki&#39;;

$user->hehe = &#39;hehe&#39;;

$myUser = $user;

$myUser->name = &#39;flypig&#39;;

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[&#39;he1&#39;] = &#39;he1&#39;;

$hehe[&#39;he2&#39;] = &#39;he2&#39;;

$hh = (object) $hehe;

print_r($hh);

ログイン後にコピー

結果を出力します:

1

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

ログイン後にコピー

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

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート