résultats étranges dans un foreach [Résolu -> étudie!]

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : résultats étranges dans un foreach [Résolu -> étudie!]

Re: résultats étranges dans un foreach

par eki27 » 02 déc. 2011, 19:14

ok, j'ai vu une solution pour mettre le var_dump en buffer pour ensuite récupérer le contenu dans une variable... mais bon, je crois surtout que je dois m'adapter à la philosophie PHP et étudier d'avantage les spécifications si je désire l'utiliser un peu correctement...

Re: résultats étranges dans un foreach

par xTG » 02 déc. 2011, 18:53

var_dump() est une fonction d'affichage et non uniquement de formatage.
echo "test de var_dump : ";
var_dump($var);
Or dans l'ordre PHP résout d'abord les composantes du print.

Re: résultats étranges dans un foreach

par eki27 » 02 déc. 2011, 18:45

le var_dump semble être un meilleur départ, merci.

Mais je ne comprends toujours pas pourquoi PHP inverse les résultats : par exemple:

Code : Tout sélectionner

print "test vardump ".var_dump($_SESSION);
retourne l'array des variables de session et ensuite le string "test vardump".
J'ai raté quelque chose d'essentiel dans la compréhension des processus PHP?

Re: résultats étranges dans un foreach

par Spols » 02 déc. 2011, 15:37

Je relis ton script avec plus d'attention, et je le trouve étrange.

premièrement un var_dump($_SESSION) devrait faire à peu près ce que tu cherche.
le gettype() porte sur la clé et non pas sur la valeurs, tout sera donc un string ou un numeric
le count() agit sur la clé, donc le retour sera toujours 1

Re: résultats étranges dans un foreach

par eki27 » 02 déc. 2011, 15:22

En effet, tout mon problème est là; car comme tu le constates, PHP vois ma variable params (qui est bien un array) comme un string!?
Si je teste avec is_array (ce qui effectivement est plus logique), je n'entrerai jamais dans la condition.

De plus, il me dit la variable params est un string et son contenu est "Array" !!??

Re: résultats étranges dans un foreach

par Spols » 02 déc. 2011, 15:13


if ($value == "Array") echo " TABLEAU taille : ".count($var)."<br>"; else echo "<br>"; 
Il vaut mieux utiliser is_array() car la tu test si ta variable est égal au string "Array"

résultats étranges dans un foreach [Résolu -> étudie!]

par eki27 » 02 déc. 2011, 15:02

Hello,

j'ai créé un snippet de debug pour afficher mes variables de session, ces variables session sont parfois des éléments simples et parfois des tableaux.
Je ne comprends pas le résultat que PHP me renvoie; il considère que userIdentified est un tableau (alors que c'est un string) et il ne vois pas que params en est un!?

Code : Tout sélectionner

//debug : display every SESSION VALUES echo "<br>---- session values: ----<br>"; foreach($_SESSION as $var => $value) { echo $var." ( ".gettype($var)." ) : ".$value; if ($value == "Array") echo " TABLEAU taille : ".count($var)."<br>"; else echo "<br>"; } echo "---- end session values ----<br>";
cela me retourne

Code : Tout sélectionner

---- session values: ---- userLogin ( string ) : admin userIdentified ( string ) : 1 TABLEAU taille : 1 params ( string ) : Array ---- end session values ----
merci de me confirmer si je suis fou ou pas :)