ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの stdClass クラスを理解する

PHP_PHP チュートリアルの stdClass クラスを理解する

WBOY
WBOYオリジナル
2016-07-13 10:32:151079ブラウズ

私と同じように、誰もが次のような PHP コードをよく目にすると思います:

コードをコピーします コードは次のとおりです:

$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のライブラリも良いですね。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/756341.html技術記事私と同じように、次のような PHP コードをよく目にすると思います。 $user = new stdClass(); $user-name = 'gouki'; このコードは何に使用されますか?
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。