Dans un de mes scripts, j'essaie de faire ce qui suit
$data[] = self::get($row['sr_id']); // <-- line 55
Cependant, PHP ne me permet pas de le faire, me donnant ceci error
Erreur fatale: impossible d'utiliser [] pour lire dans /file.php à la ligne 55
La fonction self::get
renvoie soit un bool, soit un objet.
Edit: La fonction get crée un nouvel objet qui charge à nouveau les données d'une base de données mysql.
Les anciennes versions PHP acceptaient $var[]
dans les expressions, autorisaient la lecture du contenu $var
indépendamment de la syntaxe. PHP 5.1 a rendu cela illégal. Mais parfois, l'erreur est déclenchée en dehors du contexte voulu.
Donc, je suppose (encore: afficher plus de code) est que la ligne précédente contient une expression inachevée, à laquelle le $data[]
se joint.
En cas d'attribut d'objet, vous pouvez envelopper votre $ data var dans { }
, mais cela ne semble pas être le problème dans votre cas. (Sinon il y a quelque chose dans la ligne 54 que vous n'avez pas montré.) Le côté droit ne peut pas raisonnablement déclencher l'erreur. Même un tableau accédant à []
un entier ou un objet ne déclencherait pas cette erreur fatale.
Donc, si rien n'y fait, utilisez simplement array_Push()
. Travaillez autour de PHP.
La solution dans mon cas était la suivante:
$this->$ExtraTag[] = $fullscript;
$this->{$ExtraTag}[] = $fullscript;
ou
$this->ExtraTag[] = $fullscript;
L'erreur que j'ai eu était:
Erreur fatale: impossible d'utiliser [] pour la lecture /pathtosite/drupal/sites/all/themes/zenui/templates/page.tpl.php à la ligne 33
Parfois, le problème survient lorsque vous incluez une ligne comme celle-ci:
$page['sidebar_first'][]
Cela peut arriver si vous copiez un nom de variable et que vous avez oublié de commenter la ligne.
Il y avait deux problèmes:
1. Point-virgule manquant
2. $ variable [] doit définir une variable
Après avoir résolu ces deux problèmes, mon code se lisait comme suit:
$page['sidebar_first'][] = $value;
N'oubliez pas de commenter la ligne que vous n'utilisez pas pour vous aider dans le processus de débogage
J'espère que cela aide les autres programmeurs comme moi!
essayer:
$data = Array();
$data[] = self::get($row['sr_id']); // <-- line 55
Un autre problème possible pourrait être un double ==
..__ accidentel. Par exemple, exécuter $myArray[] == $myNewValue;
par erreur provoquerait cette erreur (car vous essayez de lire une valeur avec le ==
au lieu de demander à PHP d'attribuer un nouvel index de tableau).
J'ai eu le même problème avec mon script, la ligne suivante a jeté la même erreur:
$array[]=$value
Je l'ai simplement remplacé par
$array[count($array)-1]=$value
et cela a fonctionné parfaitement.