function array2object(array $array) { ... } en PHP5 ( object, stdClass, php )

Publié le 19 juillet 2008 par Mr32

Cette fonction function array2object() n'est pas nouvelle en soit, mais voici une écriture récursive en PHP5 plus rigolote ( et surtout plus restrictive ) à utiliser.

La fonction ci-dessous ne fonctionne qu'en PHP 5 de part le typage du paramètre (array $array) ainsi on évite le contrôle is_array(). Toutefois, si vous envoyez une valeur qui n'est pas un tableau, une erreur de compilation se produira.

function array2object(array $array) {
	$object = new stdClass();
	foreach($array as $key => $value) {
		if(is_array($value)) {
			$object->$key = array2object($value);
		} else {
			$object->$key = $value;
		}
	}
	return $object;
}

Exemples d'utilisation :

$tableau[0] = 'Valeur 0';
$tableau[1] = 'Valeur 1';
$tableau['deux'] = 'Valeur 2';
$tableau['trois']' = 'Valeur 3';

$objet = array2object($tableau);

echo $objet->0;     // Ecriture incorrecte
echo $objet->{'1'}; // Ecriture correcte
echo $objet->deux;  // Ecriture classique
echo $objet->trois; // etc...