PHPのstdClassクラスの理解

1258 ワード

私と同じように、次のPHPコードによく似ていると信じています.
 
  
$user = new stdClass();
$user->name = 'gouki';

このようなコードは、何に使いますか?マニュアルをめくってstdClassを検索すると、マニュアルにはほとんど紹介されていません.googleを再び検索すると、ほとんど英語で説明されています.実はstdClassはPHP 5で流行し始めた.stdClassもzendの保存クラスです.他に役に立たないようです.説明もほとんどありません.あるいは、stdClassはPHPのベースクラスであり、すべてのクラスがほとんどこのクラスを継承しているので、いつでもnewされ、この変数をobjectにすることができます.同時に、この基類にはもう一つの特殊な場所があり、方法がない.new stdClass()の変数を使用する場合、$a->test()の使用は不可能です.あるいは、PHP 5のオブジェクトの独特性だけに、オブジェクトはどこで呼び出されてもアドレス型を参照するので、相対的に消費されるリソースが少ないことを理解することができます.コピーを参照するのではなく、他のページに値を割り当てるときに直接変更されます.例:
 
  
$user = new stdClass();
$user->name = 'gouki';
$myUser = $user;
$myUser->name = 'flypig';

PHP 4時代なら、このようなコードはシステムリソースを消費していた.理由:
$myUser = $user;
これはコピーを作成しました.だから、PHP 4の時、すべてこのように使います:
 
  
$myUser = & $user;

なぜ配列を使わないのかという人もいます.配列はもっと便利ではないでしょうか.またPHPのような弱いタイプのプログラムには配列が一番便利なはずです.
確かに.配列はプログラムの使用に一番便利なはずですが、配列の毎回引用($a=$b)は、実はコピーが作成されています.そして、配列がunsetされた後も、メモリが消費されています(これは人の話を聞いて、テストしていませんが...どうやってテストするか分かりません.知っている人がいたら、教えてください.ありがとうございます)
しかし、SPLの標準クラスライブラリには、配列を直接オブジェクトに変換できる関数arrayobjectもあります.これも良い方法ですよ.