ホームページ  >  記事  >  バックエンド開発  >  PHPでのstdClassクラスの用途は何ですか?

PHPでのstdClassクラスの用途は何ですか?

怪我咯
怪我咯オリジナル
2017-07-12 11:34:501428ブラウズ

PHP カーネルがモジュールの初期化操作を実行すると、この関数が自動的にロードされ、stdClass クラスの登録操作も実行されます。 stdClass クラスは、メンバー変数やメンバー メソッドを持たないクラスです。 すべての マジック メソッド、親クラス、インターフェイスなどは、初期化中に NULL に設定されます。 PHP ではメソッドをクラスに動的に追加できないため、このクラスは動的 属性 を処理するためにのみ使用できますが、これも一般的な使用法です。したがって、次のメソッドは set インターセプターをトリガーしません

コードは次のとおりです:

$user = new stdClass();
$user->name = 'gouki';

このコードは何に使用されますか?

マニュアルを開いて

stdClass を検索してみると、マニュアルにはほとんど紹介がないことがわかりますが、再度 Google で検索すると、ほぼすべて英語の説明が表示されます。
実際、stdClass が普及したのは PHP5 になってからです。 stdClass も zend の予約クラスです。それ以外の効果はないようです。こちらもほとんど説明がありません。 または、次のように理解することもできます。stdClass は PHP の基本クラスです。ほとんどすべてのクラスがこのクラスを継承するため、いつでも新しいクラスになる可能性があり、この変数は
オブジェクト
になる可能性があります。同時に、この基本クラスにはメソッドが存在しないという特別な機能があります。 new stdClass() の変数を使用する場合、 $a->test() を使用することはできません。 または、PHP5 の オブジェクト の一意性により、オブジェクトは呼び出されるたびに参照アドレス型になるため、消費するリソースが少なくなるということで、このように理解することもできます。
他の
ページで値を割り当てると、コピーを参照するのではなく、直接変更されます。 例: コードは次のとおりです:

$user = new stdClass();
$user->name = 'gouki';
$myUser = $user;
$myUser->name = 'flypig';

PHP4時代の場合、このようなコードはシステムリソースを消費します。理由:

$myUser = $user;

これによりコピーが作成されます。したがって、PHP4 では、次のように使用されます:


コードは次のとおりです:

$myUser = & $user;

なぜ配列を使用しないのかと言う人もいます。配列の方が便利ではないでしょうか?また、PHP のような弱い型指定のプログラムの場合は、配列を使用するのが最も便利です。

確かに。配列はプログラムで使用するのに最も便利なはずですが、配列が参照されるたびに ($a = $b)、実際にはコピーが作成され、配列が設定解除された後もメモリを占有します (これは私が行ったことです)。聞いた) 人々はそれを言っています、私はそれをテストしたことがありません...そして、それをテストする方法がわかりません、誰か知っているなら、教えてください、ありがとう)

ただし、標準クラスには関数 arrayobject もあります。配列を直接オブジェクトに変換できるSPLのライブラリも良いですね。

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

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