Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie ein Objekt in PHP in ein Array

So konvertieren Sie ein Objekt in PHP in ein Array

PHPz
Freigeben: 2023-04-24 16:03:15
Original
649 Leute haben es durchsucht

PHP ist eine beliebte serverseitige Programmiersprache, die relationale Datenbanken unterstützt, zum Betrieb von Schriftarten, zur Verwendung von HTML und vielen anderen Funktionen verwendet wird. In PHP wird Object als Datentyp häufig in verschiedenen PHP-Erweiterungsbibliotheken und Frameworks verwendet. Manchmal ist es jedoch für eine bessere Datenverarbeitung notwendig, Object in ein Array zu konvertieren. In diesem Artikel erklären wir, wie man Object in PHP in ein Array konvertiert.

Objekttyp in PHP

In PHP wird der Objekttyp als Hintergrundtyp bezeichnet, der der oberste und grundlegendste Datentyp in PHP ist. Sein Typprotokoll kann Klasseninstanzen und Nicht-Klassenobjekte unterstützen.

Zum Beispiel:

class Fruits
{
    public $apple_color = 'red';
    public $orange_color = 'orange';
    function __construct($apple_color, $orange_color) {
        $this->apple_color = $apple_color;
        $this->orange_color = $orange_color;
    }
}

$fruit_instance = new Fruits('green', 'yellow');
$fruit_object = (object)array('apple' => 'red', 'orange' => 'orange', 'furniture' => 'blue');
Nach dem Login kopieren

Im obigen Code ist Fruits eine Klasse, und wir erstellen eine Instanz davon $fruit_instance und ein Objekt $fruit_object. Sie gehören beide zu Objekttypdaten, aber <code>$fruit_instance ist eine „Klasseninstanz“, während $fruit_object ein „Nicht-Klassenobjekt“ ist. Fruits 是一个类,我们创建了它的一个实例 $fruit_instance 和一个对象 $fruit_object。 它们同属于 Object 类型的数据,但是 $fruit_instance 是一个“类的实例”,而 $fruit_object 是一个“非类的对象”。

在 PHP 中,如何将 Object 转换成数组呢?以下列举了几种可以使用的方法:

方法一:使用类型转换

PHP 中的强制类型转换可以将任何类型的对象(Object)转换成数组。 例如:

$array = (array)$fruit_object;
print_r($array);
Nach dem Login kopieren

当我们运行以上代码时,输出的结果:

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

但是,需要注意的是,当我们进行强制类型转换的时候,会将 Object 转换成一个数组,但是这并不是我们期望的结果,因为原始数据的信息会丢失,我们将不得不手动重新处理数据来保留原有的结构。

方法二:使用 get_object_vars 函数

PHP 中的 get_object_vars 函数可以用来获取参数中的 Object 对象的属性和属性值,返回的是一个数组。 例如:

$array = get_object_vars($fruit_object);
print_r($array);
Nach dem Login kopieren

当我们运行以上代码时,输出的结果:

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

需要注意的是,get_object_vars 函数只能获取对象的属性,没有任何方法,但是我们可以通过一个类的成员函数来获取所有属性。

方法三:使用 json_decode 函数

PHP 中的 json_decode 函数也可以将 JSON 格式的字符串转成数组。 例如:

$json_str = json_encode($fruit_object);
$array = json_decode($json_str, true);
print_r($array);
Nach dem Login kopieren

当我们运行以上代码时,输出的结果:

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

需要注意的是,json_decode

Wie konvertiere ich ein Objekt in ein Array in PHP? Hier sind mehrere Methoden, die verwendet werden können:

Methode 1: Typkonvertierung verwenden

Die erzwungene Typkonvertierung in PHP kann jeden Objekttyp (Object) in ein Array konvertieren. Zum Beispiel:

function object_to_array($object)
{
    if (is_object($object)) {
        // 获取对象的属性和属性值
        $array = get_object_vars($object);
    } elseif (is_array($object)) {
        foreach ($object as $key => $value) {
            $array[$key] = object_to_array($value);
        }
    } else {
        $array = $object;
    }
    return $array;
}

$array = object_to_array($fruit_object);
print_r($array);
Nach dem Login kopieren
Wenn wir den obigen Code ausführen, lautet das Ausgabeergebnis:

Array
(
    [apple] => red
    [orange] => orange
    [furniture] => blue
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Es ist jedoch zu beachten, dass das Objekt bei der Umwandlung des Umwandlungstyps in ein Array konvertiert wird, dies ist jedoch nicht das, was wir tun Da die Informationen der Originaldaten verloren gehen, müssen wir die Daten daher manuell erneut verarbeiten, um die ursprüngliche Struktur beizubehalten.

Methode 2: Verwenden Sie die Funktion get_object_vars

Die Funktion get_object_vars in PHP kann verwendet werden, um die Attribute und Attributwerte des Objektobjekts im Parameter abzurufen und ein Array zurückzugeben. Zum Beispiel: 🎜rrreee🎜Wenn wir den obigen Code ausführen, lautet das Ausgabeergebnis: 🎜rrreee🎜Es ist zu beachten, dass die Funktion get_object_vars nur die Attribute des Objekts abrufen kann. Es gibt keine Methode. Wir können jedoch eine Klassenmitgliedsfunktion übergeben, um alle Eigenschaften abzurufen. 🎜🎜Methode 3: Verwenden Sie die Funktion json_decode 🎜🎜Die Funktion json_decode in PHP kann auch Zeichenfolgen im JSON-Format in Arrays konvertieren. Zum Beispiel: 🎜rrreee🎜Wenn wir den obigen Code ausführen, lautet das Ausgabeergebnis: 🎜rrreee🎜Es ist zu beachten, dass die Funktion json_decode auch die Verarbeitung von Binärdaten unterstützt. 🎜🎜Methode 4: Verwenden Sie eine benutzerdefinierte Funktion🎜🎜Wir können auch eine Funktion anpassen, um das Objektobjekt in ein Array umzuwandeln. Zum Beispiel: 🎜rrreee🎜Wenn wir den obigen Code ausführen, lautet das Ausgabeergebnis: 🎜rrreee🎜Es ist zu beachten, dass wir bestimmte Beurteilungen und Verarbeitungen verschiedener Datentypen vornehmen müssen, damit unsere Funktionen mit unterschiedlichen Situationen umgehen können. 🎜🎜Zusammenfassung🎜🎜In PHP wird der Objekttyp häufig in verschiedenen Datenanwendungen verwendet. Durch die Konvertierung von Objekten in ein Array wird die Datenverarbeitung flexibler und einfacher. Wenn wir jedoch ein Objekt konvertieren, müssen wir entsprechend der tatsächlichen Situation flexibel verschiedene Methoden auswählen, um die ursprüngliche Datenstruktur und Informationen besser beizubehalten. 🎜

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Objekt in PHP in ein Array. 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