PHPでのstdClassの使用状況分析

高洛峰
リリース: 2016-10-20 14:43:58
オリジナル
1121 人が閲覧しました

この記事では、php での stdClass の使用法を例とともに分析します。皆さんの参考に共有してください。

具体的な分析は次のとおりです:

stdclass は、php で事前定義されたいくつかのクラスの 1 つであり、zent によって予約されているクラスです。実際、これは PHP によって提供される基本クラスであり、何も含まれていない空のクラスです。これをインスタンス化し、一連の変数を定義し、変数を渡すことができます (多くの PHP プログラマーは値を渡すためにこれを使用します。独自のクラスを作成する手間を省きながら、一連の変数を作成できます)。ただし、インスタンス化後にメソッドを追加することはできないため、プロパティのみを渡すことができます。クラスがインスタンス化されると、メソッドを追加できないためです。

stdclassは基底クラスとして利用でき、その最大の特徴は、定義時にメンバ変数を指定することなく、(その派生クラスが)自動的に追加できることです。

すべての php 変数は stdClass のインスタンスです。

使用方法:

1. stdclass を使用します:

$andy = array();
$andy = (object)$andy;
$andy->a = 1;
$andy->b = 2;
$andy->c = 3;
ログイン後にコピー

このようにして、数量 a、b、および c が stdclass に入力されます。空のオブジェクトを作成するには $andy = new Andy が必要であり、最初にクラス Andy{} が存在する必要があるため、これによりトラブルが軽減されます。別の例:

<?php
$a = new stdClass();
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
ログイン後にコピー

は次のように出力します: stdClass Object ([id] => 11 [username] => me)。
多くの場合、このメソッドは、単なる別の構文である配列の使用を置き換えるために使用されます。

読んでください:

stdClass Object
(
  [getWeatherbyCityNameResult] => stdClass Object
    (
      [string] => Array
        (
          [0] => 四川
          [1] => 成都
          [2] => 56294
          [3] => 56294.jpg
          [4] => 2009-5-17 13:52:08
          [5] => 26℃/19℃
          [6] => 5月17日 阴转阵雨
        )
    )
)
ログイン後にコピー

実際、これは配列に似ていますが、アクセス方法が少し異なります。私たちは通常、配列にアクセスするために array['key'] を使用することに慣れています。
この種の stdClass の場合、上記の例のように、$weather->getWeatherbyCityNameResult->string[0] はこのようなプロパティにアクセスでき、結果は「四川省」になります。

3. インスタンス化、新規。

これら 2 つのコードを比較してください:

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
ログイン後にコピー

は次のように出力します: stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [username] => me ) 。

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a = new stdClass();
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
ログイン後にコピー

は、stdClass Object ([id] => 11 [username] => me) を出力します。

new でインスタンス化した後、以前の配列はクリアされ、インスタンス化されなかった場合、stdClass はすべての要素を保持することがわかります。

関数内で global または static を使用し、新しい stdclass が参照される場合、&new stdclass は無効になることに注意してください。参照の使用を避け、新しい stdclass を直接使用する必要があります。

この記事が皆様の PHP プログラミング設計に役立つことを願っています。


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