2010-08-09 37 views
1

Quelqu'un sait comment affecter une valeur stdClass à une variable?php stdClass: affecter une valeur d'objet à la variable

J'ai un objet stdClass et quand je l'imprime en utilisant var_dump($userdetails->emailaddress), il affiche la valeur comme String (31) "asdas. @ Fsdf.com";

mais lorsque je tente d'affecter la valeur de l'objet à la variable, permet de dire:

$to = $userdetails->emailaddress; 

la valeur NULL $to devenir ...

Tout le monde peut aider?

+1

Cela devrait fonctionner correctement. Par exemple, essayez: 'php -r '$ x = new stdClass; $ x-> foo = "bar"; $ foo = $ x-> foo; var_dump ($ foo); ''Il va imprimer" barre ". Collez votre code actuel, il y a probablement quelque chose d'autre qui ne va pas. –

+0

Cela devrait fonctionner. Pouvez-vous fournir un exemple complet qui affiche le comportement incorrect? Avez-vous vérifié que ce n'est pas un cas d'identifiant (comme $ userDetails au lieu de $ userdetails)? –

Répondre

0

Je pense qu'il n'y a rien de mal/empêcher d'affecter une valeur de stdClass à variable. SVP vérifiez l'orthographe du code.

5

Cela semble que vous faites quelque chose de mal, parce que

$obj = new StdClass; 
$obj->email = '[email protected]'; 
$to = $obj->email; 
var_dump($to); // string(15) "[email protected]" 

Notez que les variables et les membres de l'objet en PHP sont sensibles à la casse (contrairement à des fonctions et méthodes), si

$to = $obj->eMail; 
var_dump($to); // NULL 

Cependant, Dans ce cas, vous recevez également un avis de PHP

Notice: Undefined property: stdClass::$eMail 

C'est une bonne pratique de rendre e error_reporting(-1) et les directives PHP.ini display_errors and display_startup_errors sur les machines de développement.


Comme c'est un CW. n'hésitez pas à utiliser cet espace pour d'autres conseils de débogage

0

La variable est-elle publique ou non?

Si la classe est faite comme:

class Example 
{ 
    public $emailaddress; 

    public function example() 
    { 
     #do something 
    } 

} 

Je ne vois pas pourquoi il y aurait un problème.

+2

C'est une StdClass donc toute autre visibilité que public ne devrait pas s'appliquer – Gordon

+0

Ah, je n'ai jamais utilisé de StdClass alors j'ai juste supposé que c'était un nom d'exemple. Mon mauvais * rougir * – Dorjan