PHP: fonte d' (array) et retour-type: tableau n'est pas la même chose?
J'ai le problème suivant en PHP:
print_r()
dit que c'est la même chose, gettype()
dit même type, mais la dernière sortie fonctionne pas pour les deux cas, bien qu'ils doivent être la même!
Cela semble très étrange pour moi.
code et de sortie:
$docdatau = get_object_vars(json_decode($docdata));
$docdatau2 = (array)json_decode($docdata);
echo "1\n";
echo gettype($docdatau);
echo "\n";
echo "--------------------------------------\n";
print_r($docdatau);
echo "--------------------------------------\n";
echo "2\n";
echo gettype($docdatau2);
echo "\n";
echo "--------------------------------------\n";
print_r($docdatau2);
echo "out1\n";
echo "--------------------------------------\n";
print_r($docdatau[0]);
echo "out2\n";
echo "--------------------------------------\n";
print_r($docdatau2[0]);
La sortie:
1
array
--------------------------------------
Array
(
[0] => stdClass Object
(
[produkt] => Produkt 2
[laufzeit] => 24
[addtext] => sdsd
[provision] => 39
)
[1] => stdClass Object
(
[produkt] => Produkt 1
[laufzeit] =>
[addtext] =>
[provision] => 0
)
)
--------------------------------------
2
array
--------------------------------------
Array
(
[0] => stdClass Object
(
[produkt] => Produkt 2
[laufzeit] => 24
[addtext] => sdsd
[provision] => 39
)
[1] => stdClass Object
(
[produkt] => Produkt 1
[laufzeit] =>
[addtext] =>
[provision] => 0
)
)
out1
--------------------------------------
stdClass Object
(
[produkt] => Produkt 2
[laufzeit] => 24
[addtext] => sdsd
[provision] => 39
)
out2
--------------------------------------
--------------------------------------
out1
et out2
devrait produire les mêmes résultats, mais ne le font pas.
Peut-être quelqu'un a une astuce pour moi?
Le code que vous avez posté ne peut pas correspondre à la donnée de sortie. La sortie se termine avec deux "------" les lignes, mais le code affiche seulement l'un après "out2". Lorsque vous affichez des exemples de code pour bizarre ce type de problèmes, merci de ne pas de les éditer et de prendre soin de reproduire le exact le code qui vous donne le résultat indiqué.
Est le rapport d'erreurs? Pas de sortie à tous pour
ok la prochaine fois je vais le faire. le code est inédite à l'exception de la dernière ligne de tirets.. @deceze; les rapports d'Erreurs, dit <b>Avis</b>: Undefined offset: 0 sur la ligne xy --> la ligne est: (print_r($docdatau2[0]);)
Est le rapport d'erreurs? Pas de sortie à tous pour
print_r
devrait normalement être accompagné par une erreur.ok la prochaine fois je vais le faire. le code est inédite à l'exception de la dernière ligne de tirets.. @deceze; les rapports d'Erreurs, dit <b>Avis</b>: Undefined offset: 0 sur la ligne xy --> la ligne est: (print_r($docdatau2[0]);)
OriginalL'auteur Andreas K. | 2010-08-20
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs PHP bugs à ce sujet:
La même chose se produit ici:
Cela se produit parce que le "0" est utilisé comme tableau de chaîne de clé, alors que $arr[0] recherche pour le tableau d'entiers à la clé. Elle est documentée dans la documentation PHP, simplement en déclarant: entier propriétés sont inaccessibles (lien).
Ne comptez pas sur elle. C'est assez typique de comportement.
ce comportement voulez-vous dire exactement? que des bugs sont déclarés comme des problèmes connus? ou que le même contenu de 2 variables ne peuvent pas être utilisés de la même manière selon l'endroit où ils sont venus? alors comment savoir si un tableau est un "vrai" tableau ou une coulé de l'objet? gettype et print_r sont tous les deux le même dans les deux cas. wheres la différence? une clé entière n'est pas accessible.. hm.. existe-t-elle dans un autre façon dont un accessible entier clé existe? qui ne peuvent accéder à cette clé? print_r pouvait lire la clé et l'opérateur de cast pourrait écrire la clé. donc il existe pour moi. je pense que c'est clairement un bug..
Que des bugs sont a déclaré que les problèmes connus. Vous pouvez accéder à la clé à l'aide d'une boucle foreach.
ok, donc comment puis-je savoir si un tableau est un "vrai" tableau ou une coulé de l'objet?
OriginalL'auteur Sjoerd