Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur « Type de décalage illégal » dans PHP lors d'une itération dans des tableaux ?

Comment résoudre l'erreur « Type de décalage illégal » dans PHP lors d'une itération dans des tableaux ?

DDD
DDDoriginal
2024-10-19 17:43:30503parcourir

How to Resolve the

Correction de l'erreur de type de décalage illégal

Problème :

Vous rencontrez un « type de décalage illégal " erreur lors de l'itération dans un tableau, en accédant aux éléments en utilisant des objets ou des tableaux comme clés d'index. Voici un exemple de code qui déclenche l'erreur :

<code class="php">$s = array();
for($i = 0; $i < 20; $i++){
    $source = $xml->entry[$i]->source;
    $s[$source] += 1;    
}

print_r($s);</code>

Réponse :

Des erreurs de type de décalage illégales se produisent lors de l'accès aux index de tableau en utilisant des objets ou des tableaux comme clés d'index.

<code class="php">$x = new stdClass();
$arr = array();
echo $arr[$x]; // Example: Illegal offset type</code>

Dans votre code, l'erreur se produit car $xml->entry[$i]->source peut être un objet ou un tableau pour certaines valeurs de $i. Lorsque vous essayez de l'utiliser comme clé d'index pour $s, vous rencontrez l'erreur de type de décalage illégal.

Pour résoudre ce problème, vérifiez le contenu et la structure de $xml pour vous assurer que vous y accédez correctement et que il contient ce que vous attendez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn