Heim  >  Artikel  >  Backend-Entwicklung  >  Konvertierung zwischen PHP-Objekten und Arrays

Konvertierung zwischen PHP-Objekten und Arrays

巴扎黑
巴扎黑Original
2016-11-24 09:42:041353Durchsuche

/**

* 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

)

**/

Stellungnahme:
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