So konvertieren Sie Objekte in PHP in Arrays

PHPz
Freigeben: 2023-04-17 14:58:05
Original
646 Leute haben es durchsucht

In PHP sind Object und Array zwei verschiedene Datentypen. Manchmal müssen wir jedoch ein Objekt in ein Array konvertieren, z. B. die Eigenschaften und Methoden eines Klasseninstanziierungsobjekts zur einfacheren Verwendung in ein Array konvertieren.

In PHP gibt es mehrere Möglichkeiten, eine Objekt-in-Array-Konvertierung zu erreichen.

1. Verwenden Sie die Funktion get_object_vars()

Dies ist die einfachste und einfachste Methode. Die Funktion get_object_vars() kann ein Array aller Attribute und Attributwerte in einem Objekt zurückgeben.

Zum Beispiel:

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);
Nach dem Login kopieren

Ausgabe:

Array
(
    [a] => 1
)
Nach dem Login kopieren

Es ist ersichtlich, dass die Funktion get_object_vars() nur den Wert des öffentlichen Attributs $a erhält, für die geschützten und privaten Attribute $b und $c jedoch deren Werte ​​werden nicht erhalten.

2. Verwenden Sie Objektumwandlung

In PHP können Sie Typumwandlung verwenden, um ein Objekt in ein Array umzuwandeln. Bei der erzwungenen Typkonvertierung wird das Schlüsselwort „(array)“ verwendet.

Zum Beispiel:

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);
Nach dem Login kopieren

Ausgabe:

Array
(
    [a] => 1
    [*b] => 2
    MyClassprivatec] => 3
)
Nach dem Login kopieren

Dieses Array enthält alle Eigenschaften und Eigenschaftswerte, aber geschützten und privaten Eigenschaften wird ein * oder Klassenname vorangestellt, um sie von öffentlichen Eigenschaften zu unterscheiden.

Es ist zu beachten, dass diese Methode nicht die Methoden im Objekt auflistet, sondern nur die Eigenschaften des Objekts.

3. Verwenden Sie die Funktion json_decode()

In PHP können Sie die Funktion json_decode() verwenden, um eine JSON-Formatzeichenfolge in ein Array oder Objekt zu konvertieren. Daher können die Eigenschaften eines Objekts im JSON-Format codiert und dann in ein Array decodiert werden.

Zum Beispiel:

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);
Nach dem Login kopieren

Ausgabe:

Array
(
    [a] => 1
    [b] => 2
    [MyClassprivatec] => 3
)
Nach dem Login kopieren

Es ist zu beachten, dass diese Methode auch geschützte und private Eigenschaften in Arrays umwandelt, ihnen jedoch der Klassenname vorangestellt wird.

Zusammenfassung

Die oben genannten Methoden sind mehrere Methoden zum Konvertieren von Objekten in Arrays, einschließlich der Verwendung der Funktion get_object_vars(), der erzwungenen Typkonvertierung und der Funktion json_decode(). Am häufigsten werden die Funktionen cast und json_decode() verwendet.

Es ist zu beachten, dass bei Verwendung der Funktion cast und json_decode() den Werten geschützter und privater Attribute möglicherweise Klassennamen oder Symbole wie * vorangestellt werden, die je nach bestimmten Umständen behandelt werden müssen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Objekte in PHP in Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage