Konvertierung zwischen PHP-Objekten und Arrays

巴扎黑
Freigeben: 2016-11-24 09:42:04
Original
1352 Leute haben es durchsucht

/**

* Konvertierung zwischen PHP-Objekten und Arrays

*

* @author flyer0126

* @since 03.05.2012

**/


// 1. Verwenden Sie (array) und (object), um einfach

$objTemp = zu verarbeiten (objTemp->b = 2;

$objTemp->c = 3;

$arrTemp = (array)$objTemp;

print_r($objTemp);

print_r($arrTemp);

 /**


stdClass Object

(

    [a] => 1

    [b] => 2

    [c] => 3

)

Array

(

    [a] => 1

    [b] => 2

    [c] => 3

)

**/

// PS: Einfach (Array) und (Objekt) können nur Daten einer einzelnen Ebene verarbeiten , können Sie nichts gegen mehrschichtige Array- und Objektkonvertierungen tun.


// 2. Konvertierungsverarbeitung zwischen mehrdimensionalen Arrays und Objekten


/**


* Konvertieren Sie das Objekt in ein mehrdimensionales Array

*

** /

function objectToArray($d) {

if (is_object($d)) {

// Ruft die Eigenschaften des angegebenen Objekts ab

// mit der Funktion get_object_vars

$d = get_object_vars($d);

}

if (is_array($d)) {


/*

* In Objekt konvertiertes Array zurückgeben

* Verwendung von __FUNCTION__ (magische Konstante)

* für rekursiven Aufruf

* /

return array_map(__FUNCTION__, $d);

}

else {

// Return array

return $ d ;

}

}

/**

* Mehrdimensionales Array in Objekt konvertieren

*

**/

function arrayToObject($d) {

if (is_array($d)) {

/*

* In ein Objekt konvertiertes Array zurückgeben

* Mit __FUNCTION__ (magische Konstante)

* für rekursiven Aufruf

*/

return (object) array_map(__FUNCTION__, $d);

}

else {

// Objekt zurückgeben

return $d;

}

}

// Verwendung :


$init = new stdClass;

$init->foo = "Test data";

$init->bar = new stdClass;

$init->bar->baaz = "Testing";

$init->bar->fooz = new stdClass;

$init->bar - >fooz->baz = "Erneut testen";

$init->foox = "Nur testen";

// Konvertieren Array zum Objekt und dann Objekt zurück zum Array


$array = objectToArray($init);

$object = arrayToObject($array);

// Objekte und Array drucken


print_r($init);

print_r($array);

print_r($object);

 /**


stdClass Object

(

    [foo] => Testdaten

    [bar] => stdClass Object

        (

            [baaz] => Testing

            [fooz] => stdClass Object

               [baz] => Erneut testen

                )

        )

    [foox] => Einfach testen

)

Array

(

    [foo] => Testdaten

    [bar] => Array

        (

            [baaz] => Testen

[fooz] => Array

                (

          [baz] => Erneut testen

       )

    [foox ] => Einfach testen

)

stdClass Object

(

    [foo] => Testdaten

    [bar ] => stdClass Object

        (

           

                    [baz] => Noch einmal testen

        )

    [foox] => Einfach testen

)

**/

Verwandte Etiketten:
php
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