2010-09-29 51 views
0

J'ai code comme ceci:variables PHP stdClass attributs

foreach($attributes as $attrib => $options){ 
    if($bb->$attrib != $default->$attrib){ 
     $delete = false; 
    } 
} 

bb $ est un stdClass, la lecture et l'écriture im ces attributs de cette manière, parce que je les ai stockées dans un tableau. Maintenant, cela fonctionne en PHP 5.3 que j'ai confirmé, je suis sûr que cela fonctionne aussi sur 5.2, mais sur 5.1 il semble y avoir un problème où vous ne pouvez pas écrire sur l'objet de cette façon, pas d'erreurs ou quoi que ce soit, juste n'écrira pas ...

Depuis quelle version cela fonctionne-t-il?

+5

tout est lu et compare ... –

Répondre

0

Je crois qu'il se réfère à l'utilisation variable variables, pour PHP < = 5.1 essayez d'utiliser {} autour de la variable variable. iirc en PHP 5.2+ est quand certaines choses ont été modifiées pour le permettre sans ceux-ci. Il est également possible qu'avant 5.2.x cela ne soit pas autorisé, et qu'il n'y ait pas d'erreurs, peut-être que la gestion des erreurs n'est pas configurée complètement, ou seulement E_ERROR. Rien dans votre code-échantillon n'écrit dans l'objet.

foreach($attributes as $attrib => $options){ 
    if($bb->{$attrib} != $default->{$attrib}){ 
     $delete = false; 
    } 
}