PHPでオブジェクトを配列に変換する方法

PHPz
リリース: 2023-04-17 14:58:05
オリジナル
646 人が閲覧しました

PHP では、オブジェクトと配列は 2 つの異なるデータ型です。ただし、使いやすいようにクラスのインスタンス化オブジェクトのプロパティとメソッドを配列に変換するなど、オブジェクトを配列に変換する必要がある場合があります。

PHP では、オブジェクトを配列に変換する方法がいくつかあります。

1. get_object_vars() 関数を使用する

これは最も基本的な方法であり、最も単純な方法です。 get_object_vars() 関数は、オブジェクト内のすべての属性と属性値の配列を返すことができます。

例:

class MyClass {
    public $a = 1;
    protected $b = 2;
    private $c = 3;

    public function test(){
        return "hello world!";
    }
}

$obj = new MyClass();
$array = get_object_vars($obj);

print_r($array);
ログイン後にコピー

出力:

Array
(
    [a] => 1
)
ログイン後にコピー

ご覧のとおり、get_object_vars() 関数はパブリック属性 $a の値のみを取得し、保護された属性の値は取得します。およびプライベート属性 $ b と $c の場合、それらの値は取得されません。

2. オブジェクト キャストの型変換を使用する

PHP では、型キャスト (型キャスト) を使用してオブジェクトを配列に変換できます。強制型変換では「(array)」キーワードを使用します。

例:

class MyClass {
    public $a = 1;
    protected $b = 2;
    private $c = 3;

    public function test(){
        return "hello world!";
    }
}

$obj = new MyClass();
$array = (array) $obj;

print_r($array);
ログイン後にコピー

出力:

Array
(
    [a] => 1
    [*b] => 2
    MyClassprivatec] => 3
)
ログイン後にコピー

この配列にはすべてのプロパティとプロパティ値が含まれますが、保護されたプロパティとプライベート プロパティには、区別される * またはクラス名が接頭辞として付けられます。公共財産から。

このメソッドはオブジェクト内のメソッドをリストするのではなく、オブジェクトのプロパティのみをリストすることに注意してください。

3. json_decode() 関数を使用する

PHP では、json_decode() 関数を使用して、JSON 形式の文字列を配列またはオブジェクトに変換できます。したがって、オブジェクトのプロパティを JSON 形式でエンコードし、配列にデコードできます。

例:

class MyClass {
    public $a = 1;
    protected $b = 2;
    private $c = 3;

    public function test(){
        return "hello world!";
    }
}

$obj = new MyClass();
$json = json_encode($obj);
$array = json_decode($json, true);

print_r($array);
ログイン後にコピー

出力:

Array
(
    [a] => 1
    [b] => 2
    [MyClassprivatec] => 3
)
ログイン後にコピー

このメソッドは、保護されたプロパティとプライベート プロパティも配列に変換しますが、クラス名のプレフィックスを追加することに注意してください。

概要

上記は、get_object_vars() 関数、強制型変換、および json_decode() 関数の使用を含む、オブジェクトを配列に変換するいくつかの方法です。最も一般的に使用されるのは、cast 関数と json_decode() 関数です。

強制型変換と json_decode() 関数を使用する場合、protected 属性と private 属性の値には、クラス名または * などの記号が接頭辞として付けられる場合があることに注意してください。特定の状況に従って処理されます。

以上がPHPでオブジェクトを配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート