目次
1. stdClass 配列をオブジェクトに変換します
2. オブジェクトを配列に変換します
3. ArrayObject メソッド配列からオブジェクトへ
ホームページ バックエンド開発 PHPチュートリアル PHP 配列をオブジェクトに変換するためのいくつかのメソッド

PHP 配列をオブジェクトに変換するためのいくつかのメソッド

Jun 20, 2016 pm 01:04 PM
PHP配列

今日、製品の作業中に偶然コード行を見つけました。

$c= new$class_name;
                                                        
$object_os= newstdClass;
                                                        
$c->on_init_app_router($object_os);
ログイン後にコピー

非常に混乱したので、クラス $c を調べたところ、空のクラス stdClass のインスタンス $object_os にいくつかの属性が動的に追加されていることがわかりました。

上記の 3 行のコードから、stdClass で何ができるのかが大まかにわかります。

stdClass はプロダクトコードで何度か登場しましたが、使ったことはなかったので、関連情報を確認し、私の経験を以下にまとめました。

stdClass は PHP の基本クラスであり、ほとんどすべてのクラスがこのクラスを継承するため、いつでも新しいクラスになり、この変数はオブジェクトになる可能性があります。同時に、この基本クラスにはメソッドが存在しないという特別な機能があります。

stdClass は PHP5 で徐々に普及してきています。これは、PHP5 オブジェクトがどこで呼び出されても参照アドレス型であるため、消費されるリソースが比較的少ないためです。他のページで値を割り当てると、コピーを参照するのではなく、値が直接変更されます。

例:

$user= newstdClass();
$user->name = ‘gouki’;
$myUser= $user;
$myUser->name = ‘flypig’;
ログイン後にコピー

PHP4 の時代であれば、そのようなコードはシステム リソースを消費するでしょう。理由:

$myUser= $user;
ログイン後にコピー

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

$myUser= & $user;
ログイン後にコピー

この記事の冒頭の 3 行のコードから、stdClass を使用してオブジェクト型の要素を生成できることがわかります。次に、stdClass を使用して配列をオブジェクト クラスに変換し、そのためのいくつかのメソッドを紹介します。配列オブジェクトを相互に変換します。:

1. stdClass 配列をオブジェクトに変換します

$arr= array();                                            
$arr['a'] = 1;                                               
$arr['b'] = 2;                                               
$arr['c'] = 3;                                             
                   
$object= newstdClass;
foreach($arras$key=> $value) {
    $object->$key= $value;
}
                   
var_dump($object);
ログイン後にコピー

結果の出力は次のとおりです:

object(stdClass)#1 (3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
ログイン後にコピー

2. オブジェクトを配列に変換します

functionobject_to_array($obj) 
{ 
    $_arr= is_object($obj) ? get_object_vars($obj) : $obj; 
    foreach($_arras$key=> $val) 
    { 
        $val= (is_array($val) || is_object($val)) ?       object_to_array($val) : $val; 
        $arr[$key] = $val; 
    } 
    return$arr; 
}
ログイン後にコピー

3. ArrayObject メソッド配列からオブジェクトへ

$arr= array('key1'=>'test1', 'key2'=> 'test2');
           
var_dump(newArrayObject($arr));
ログイン後にコピー

結果の出力は次のとおりです:

object(ArrayObject)#1 (1) {
  ["storage":"ArrayObject":private]=>
  array(2) {
    ["key1"]=>
    string(5) "test1"
    ["key2"]=>
    string(5) "test2"
  }
}
ログイン後にコピー

もちろん、PHP のパワーと柔軟性を考慮すると、配列やオブジェクトを変換する方法は他にもたくさんあるはずです。


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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 配列を使用してチャートや統計グラフを生成および表示する方法 PHP 配列を使用してチャートや統計グラフを生成および表示する方法 Jul 15, 2023 pm 12:24 PM

PHP 配列を使用してチャートや統計グラフを生成および表示する方法

PHP 配列を使用して動的なスライドショーと画像表示を生成する方法 PHP 配列を使用して動的なスライドショーと画像表示を生成する方法 Jul 15, 2023 pm 01:17 PM

PHP 配列を使用して動的なスライドショーと画像表示を生成する方法

PHP 配列を使用してユーザー ログインおよび権限管理機能を実装する方法 PHP 配列を使用してユーザー ログインおよび権限管理機能を実装する方法 Jul 15, 2023 pm 08:55 PM

PHP 配列を使用してユーザー ログインおよび権限管理機能を実装する方法

PHP配列のキーと値のペアとは何ですか? PHP配列のキーと値のペアとは何ですか? Aug 03, 2023 pm 02:20 PM

PHP配列のキーと値のペアとは何ですか?

PHPに存在する配列の数を確認する方法 PHPに存在する配列の数を確認する方法 Aug 04, 2023 pm 05:40 PM

PHPに存在する配列の数を確認する方法

PHP での配列結合の効果的な実装 PHP での配列結合の効果的な実装 Apr 30, 2024 pm 01:03 PM

PHP での配列結合の効果的な実装

PHP 配列のパフォーマンス最適化手法の探求 PHP 配列のパフォーマンス最適化手法の探求 Mar 13, 2024 pm 03:03 PM

PHP 配列のパフォーマンス最適化手法の探求

配列が空かどうかを判断するPHPの関数は何ですか? 配列が空かどうかを判断するPHPの関数は何ですか? Aug 03, 2023 pm 05:15 PM

配列が空かどうかを判断するPHPの関数は何ですか?

See all articles