誰もが stdClass クラスを知っている必要があります。 しかし、多次元配列についてはどうすればよいでしょうか? クラスマップ
これは PHP5 の基本クラスと見なすことができ、配列と同様の呼び出しメソッドを提供します
明示的なメソッドを通じて配列を stdClass に変換し、オブジェクトを使用してアクセスできます
PHP コンテンツをクリップボードにコピーします
PHP コード:
$a = new stdClass();
$a->b = 1;
echp $a->b; // 出力: 1
// arr->b; obj
$arr = array(a,b);
$obj = (オブジェクト)$arr;
配列を使用しないのはなぜですか? PHP では配列を使用するほうが便利ではないでしょうか?
1. オブジェクト呼び出しメソッドを使用するのが便利でスムーズです
2. 配列は COPY 値です。参照
3. いくつかの特別な関数を実装できます (グローバル静的変数、これについては後で説明します)
次のクラスはそのようなメソッドを実装します。
どこで使用できるかについては、
PHP コンテンツをクリップボードにコピーする
PHP コードを使用できます。 :
$ data = array(a1=>array(b1=>b1value,b2=>b2value,b3=>b3value));
$data = new map($data);
// OBJ 値
echo $ data->a1->b1; // 出力: b1value
// OBJ 割り当て
$data->a1->b2 = newb2value;
echo
.$data->a1- > b2; //出力: newb2value
// ARRAY 値
echo
.$data[a1][b3]; //出力: b3value
// 出力: b1=>b1value b2 =>newb2value b3=>b3value
foreach($data->a1 as $key=>$val){
echo
.$key.=>.$val;
}
PHPコンテンツをクリップボードにコピーします
PHPコード:
クラスマップ extends ArrayObject{
// 配列オブジェクト要素を取得します
public function __construct(array $array = array()){
foreach ($array as &$値){
$this->offset を返します。 Get($index);
}
return $this->offsetSet($index, $value);
}
パブリック関数 __unset($ Index){
$this->offsetUnset($index);
}
// 配列型に変換
public function toArray(){
$array = $this->getArrayCopy() ;
public Function __tostring ( ) {
Return var_export ($ this-& gt; toarray (), true)}
// パブリック関数 put ($ Index, $ Value) {
f array ($ value) && $ value = new self($value) ;
$this->offsetSet($index, $value);
}
// インデックスに基づいて値を取得します
public function get($index){
return $this->offsetGet($index); ;
}
}