Je reçois
type de décalage illégal
pour chaque itération de ce code. Voici le code :
$s = array();
for($i = 0; $i < 20; $i++){
$source = $xml->entry[$i]->source;
$s[$source] += 1;
}
print_r($s)
Je reçois
type de décalage illégal
pour chaque itération de ce code. Voici le code :
$s = array();
for($i = 0; $i < 20; $i++){
$source = $xml->entry[$i]->source;
$s[$source] += 1;
}
print_r($s)
Type de décalage illégal se produisent lorsque vous tentez d'accéder à un index de tableau à l'aide d'une méthode de type objet ou un réseau comme clé d'index.
Exemple :
$x = new stdClass();
$arr = array();
echo $arr[$x];
//illegal offset type
Votre $xml
contient un objet ou un tableau à $xml->entry[$i]->source
pour une certaine valeur de $i
et lorsque vous essayez de l'utiliser comme clé d'indexation pour le fichier $s
vous recevez cet avertissement. Vous devez vous assurer que $xml
contient ce que vous voulez et que vous y accédez correctement.
Vérifie que $xml->entry[$i] existe et est un objet avant d'essayer d'en obtenir une propriété
if(isset($xml->entry[$i]) && is_object($xml->entry[$i])){
$source = $xml->entry[$i]->source;
$s[$source] += 1;
}
ou $source peut ne pas être un offset de tableau légal mais un tableau, un objet, une ressource ou éventuellement null
J'ai eu un problème similaire. Comme j'ai obtenu un caractère de mon enfant XML, j'ai dû le convertir d'abord en chaîne (ou en entier, si vous en attendez un). Ce qui suit montre comment j'ai résolu le problème.
foreach($xml->children() as $newInstr){
$iInstrument = new Instrument($newInstr['id'],$newInstr->Naam,$newInstr->Key);
$arrInstruments->offsetSet((String)$iInstrument->getID(), $iInstrument);
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.