Problème d'accès aux attributs de ma classe

Résolu
Bonjour,

J'ai un souci avec les objets $css d'une classe de styles qui contient une bonne cinquantaine d'attributs, mais je ne peux en récupérer que 10, pour les autres, ça m'affiche une valeur vide.
Lorsque je fais print_r($css), ça m'affiche bien toutes mes valeurs pour les cinquante attributs, mais lorsque je fais
 foreach ($css as $id => $val) { echo "$id = $val ";}
, ça ne me sort que les 10 derniers, quelqu'un a une idée d'où ça peut venir?
Je ne sais pas trop quoi vous donner comme code pour vous aider à chercher l'erreur, dites moi s'il vous faut quelque chose.
Merci d'avance pour votre aide !

8 réponses

  1. Bonjour,

    Donne nous la sortie de
    echo "<pre>".print_r($css, true)."</pre>";
    0
    1. Mieux que ça, ça me sort bien certaines variables en dehors des 10, mais pour les autres, rien à faire.
      echo "<pre>".print_r ($css)."</pre>";
      

      me donne
      Styles Object
      (
          [_aactivecolor:private] => 5
          [_acolor:private] => 5
          [_ahovercolor:private] => 5
          [_avisitedcolor:private] => 5
          [_backgroundcolor:private] => 
          [_backgroundimage:private] => 
          [_backgroundleft:private] => 
          [_backgroundtop:private] => l
          [_borderbottomcolor:private] => 5
          [_borderbottomtype:private] => 
          [_borderbottomwidth:private] => c
          [_borderleftcolor:private] => 5
          [_borderlefttype:private] => 
          [_borderleftwidth:private] => d
          [_borderrightcolor:private] => 5
          [_borderrighttype:private] => 
          [_borderrightwidth:private] => b
          [_bordertopcolor:private] => 5
          [_bordertoptype:private] => 
          [_bordertopwidth:private] => a
          [_boxshadowblur:private] => g
          [_boxshadowcolor:private] => 3
          [_boxshadowright:private] => f
          [_boxshadowtop:private] => e
          [_color:private] => 4
          [_elem1width:private] => 
          [_elem2width:private] => 
          [_fontfamily:private] => 0
          [_fontgroup:private] => 
          [_fontsize:private] => 90%
          [_formbordercolor:private] => 
          [_formborderstyle:private] => 
          [_formborderwidth:private] => 
          [_formcolor:private] => 
          [_formpadding:private] => 
          [_formwidth:private] => 
          [_h1color:private] => 5
          [_h1font:private] => 
          [_h1margin:private] => Array
          [_h1marginbot:private] => 
          [_h1margintop:private] => 
          [_h1size:private] => y
          [_h1weight:private] => v
          [_h2color] => 5
          [_h2margin:private] => Array
          [_h2marginbot:private] => 
          [_h2margintop:private] => 
          [_h2size] => z
          [_h2weight:private] => w
          [_h3color:private] => 
          [_h3font:private] => 5
          [_h3margin:private] => Array
          [_h3marginbot:private] => 
          [_h3size:private] => a
          [_h3weight:private] => x
          [_height:private] => b
          [_id:private] => 
          [_imgbordcolor:private] => 2
          [_imgbordround:private] => s
          [_imgbordwidth:private] => r
          [_imgkeyword:private] => t
          [_imgmaxheight:private] => p
          [_imgmaxwidth:private] => n
          [_imgminheight:private] => q
          [_imgminwidth:private] => o
          [_imgwidth:private] => m
          [_input1padding:private] => 
          [_input1round:private] => 
          [_input2padding:private] => 
          [_input2round:private] => 
          [_input3padding:private] => 
          [_input3round:private] => 
          [_inputbordercolor:private] => 0
          [_inputborderwidth:private] => j
          [_inputfontsize:private] => 
          [_inputheight:private] => i
          [_inputmarginright:private] => 
          [_inputsubmit1bgcolor:private] => 
          [_inputsubmit1bordercolor:private] => 3
          [_inputsubmit1borderwidth:private] => v
          [_inputsubmit1color:private] => 
          [_inputsubmit1height] => u
          [_inputsubmit1padding:private] => 
          [_inputsubmit1round:private] => 
          [_inputsubmit1width] => t
          [_inputsubmit2bgcolor:private] => 
          [_inputsubmit2bordercolor:private] => 2
          [_inputsubmit2borderwidth:private] => y
          [_inputsubmit2color:private] => 
          [_inputsubmit2height] => x
          [_inputsubmit2padding:private] => 
          [_inputsubmit2round:private] => 
          [_inputsubmit2width] => w
          [_inputsubmit3bgcolor:private] => 
          [_inputsubmit3bordercolor:private] => 5
          [_inputsubmit3borderwidth:private] => b
          [_inputsubmit3color:private] => 
          [_inputsubmit3height] => a
          [_inputsubmit3padding:private] => 
          [_inputsubmit3round:private] => 
          [_inputsubmit3width] => z
          [_inputsubmitfontsize:private] => 
          [_inputsubmitmarginright:private] => 
          [_inputwidth:private] => h
          [_labelbordercolor:private] => 2
          [_labelborderwidth:private] => p
          [_labelfontsize:private] => 
          [_labelheight:private] => o
          [_labelwidth:private] => n
          [_lineheight:private] => u
          [_marginbottom:private] => i
          [_marginleft:private] => j
          [_marginright:private] => h
          [_margintop:private] => g
          [_paddingbottom:private] => e
          [_paddingleft:private] => f
          [_paddingright:private] => d
          [_paddingtop:private] => c
          [_palette:private] => 69
          [_place:private] => 
          [_posbot:private] => 
          [_posleft:private] => 
          [_posright:private] => 
          [_postop:private] => 
          [_selectbordercolor:private] => 1
          [_selectborderwidth:private] => m
          [_selectheight:private] => l
          [_selectwidth:private] => k
          [_textareabordercolor:private] => 0
          [_textareaborderwidth:private] => 
          [_textareaheight:private] => r
          [_textareaweight:private] => 
          [_textareawidth:private] => q
          [_textdecoration:private] => none
          [_textdecorationa:private] => a:
          [_textdecorationaactive] => act
          [_textdecorationahover] => hov
          [_textdecorationavisited:private] => vis
          [_typforms:private] => 
          [_weight:private] => 
          [_width:private] => a
      )


      var_dump(get_object_vars($css));

      me donne
      array(10) { ["_textdecorationaactive"]=> string(3) "act" ["_textdecorationahover"]=> string(3) "hov" ["_h2size"]=> string(1) "z" ["_inputsubmit1width"]=> string(1) "t" ["_inputsubmit1height"]=> string(1) "u" ["_inputsubmit2width"]=> string(1) "w" ["_inputsubmit2height"]=> string(1) "x" ["_inputsubmit3width"]=> string(1) "z" ["_inputsubmit3height"]=> string(1) "a" ["_h2color"]=> string(1) "5" }


      Mais echo $css -> Inputborderwidth(); ne me retourne aucune valeur, alors que echo $css -> Width(); m'affiche bien "a".

      Ca me rend dingue!!!!!
      0
      1. Pardon, gardiendelanuit, je n'avais pas vu ton message.
        echo "<pre>".print_r ($css, true)."</pre>"; me donne le même résultat que echo "<pre>".print_r ($css)."</pre>"; affiché ci-dessus.
        Une idée?
        0
        1. Tu as obtenue ça en faisant un serialize() ?
          0
          1. oui, j'ai fait un serialize pour enregistrer les infos en bdd
            0
            1. Quand tu fais un count dessus il te dit le même nombre?
              0
              1. oui, pareil, ça m'affiche 10...
                0
                1. je suis en train de reprendre toute la conception de ma classe, au cas où, parce que je l'ai tellement tripotée dans tous les sens que ça peut venir de là...
                  0
                  1. Ca parrait bizarre que ce soit une faiblesse de PHP de ce coté là, je te conseillerais peut-être de faire une méthode supplémentaire un tant soit peu similaire à un serialize mais en fonction de tes besoins.
                    Je continue d'explorer...
                    0
                  2. Merci de ton aide, c'est très genti. J'ai réolu le problème en réécrivant toute ma classe, c'était peut être un pb de getters/setters, je ne sais pas trop. Bizarre vu que ça ne m'affichait pas de message d'erreur, mais en tout cas, tout fonctionne, enfin!!
                    Désolée de t'avoir fait perdre ton temps :-)
                    0