web-dev-qa-db-fra.com

Comprendre l'erreur fatale: impossible d'utiliser une expression temporaire dans un contexte d'écriture

Je voudrais comprendre exactement ce que cette erreur signifie en PHP: comment l'erreur peut être créée exprès et comment l'éviter ou la corriger. Dans mon exemple simple ci-dessous, j'ai eu cette erreur:

Erreur fatale: impossible d'utiliser une expression temporaire dans le contexte d'écriture de la ligne 11

La ligne 11 est la ligne suivante qui est à l'intérieur de la seconde condition if

response['error'] = "Error: Please B is less that C <br />";

Ci-dessous se trouve tout le code du fichier PHP qui génère l'erreur. Il n'y a pas d'autre code dedans.

$response = [];
$a = 4;
$b = 8;
$c = 9;
$d = 29;

if($a !== $b){
    $response['error'] = "Error: Please A is not exactly Same as B <br />";
}

elseif($b < $c){
     //The link below is line 11
     response['error'] = "Error: Please B is less that C <br />";
}
if($d > $c){
    response['success'] = "Success: D is greater than C<br />";

}


echo $response['error'];
echo $response['success'];

Mes attentes exactes sont:

  1. Comment créer cette erreur exprès. Par exemple, j'écris

    écho $ x + $ y;

sans définir les variables, je sais que je reçois

Remarque: variable non définie

  1. Comment corriger ou éviter l'erreur Exemple, dans l'exemple d'erreur en 1 ci-dessus, je peux corriger l'erreur en définissant les variables comme suit:

    $ x = 1; $ y = 3; écho $ x + $ y;

  2. Quel est le problème avec mon exemple de code principal qui produit l'erreur en question

Voici des questions similaires mais elles ne résolvent pas mon problème.

Impossible d'utiliser la valeur de retour de la méthode dans le contexte d'écriture

Impossible d'utiliser la valeur de retour de la fonction dans le contexte d'écriture?

Y a-t-il un commutateur pour désactiver l'erreur "impossible d'utiliser une expression temporaire dans le contexte d'écriture"?

6
Prince Brucex

Son $response pas seulement response. Vous utilisez response aux lignes 11 et 14:

response['error'] = "Error: Please B is less that C <br />";

Veuillez changer ceci en

$response['error'] = "Error: Please B is less that C <br />";

J'espère que cela t'aides.

12
Kishen Nagaraju