2010-08-25 3 views
0

Je connaissais (int) et (tableau) mais pas (objet) et probablement d'autres.En php, comment appelons-nous (int) (tableau) (objet)? Où trouver plus d'informations sur ceux-ci?

Je me demande a) quel est le nom propre de ces «choses»; et, b) Où pouvons-nous trouver plus d'informations à ce sujet? (je ne pouvais pas trouver (objet) sur le site de php.net.

Merci à l'avance, MEM

+0

Quel résultat attendez-vous de (objet)? –

+0

Je ne suis pas sûr de ce que vous voulez dire. Mais je m'attends à ce que, une fois que nous appliquons (objet) la valeur se transforme en un objet ... – MEM

+0

@ Col.Shrapnel: Je ne sais pas ce que MEM s'attend à ;-) mais la documentation dit: http: // docs. php.net/language.types.object#language.types.object.casting – VolkerK

Répondre

0

Soyez très prudent!

Si vous essayez quelque chose comme

$array = array(5, 2, 3); 
$object = (object)$array; 
print_r($object); 
echo $object->2; 

vous finirez avec

PHP Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in - on line 5 

Vraiment, la meilleure façon de convertir des tableaux à des objets est assez alambiquée, mais fonctionne bien:

public function makeObjects($data) 
{ 
    $object = (object) $data; 
    foreach ($object as $property) 
    { 
     if (is_array($property)) $this->makeObjects($property); 
    } 

    return $object; 
} 
+1

Ummm ... '$ object = (object) $ array' fonctionne assez bien ... La raison de votre erreur fatale est que $ object-> 2' n'est pas une syntaxe valide. Ce n'est pas lié à la conversion ... – ircmaxell

+0

autant que je peux voir le code à l'intérieur du foreach ne fait rien de significatif –

+0

Utilisé: $ response = (object) array ( 'success' => TRUE, 'data' => tableau (1, 2, 3) ); Aucun problème. ;) – MEM

Questions connexes