Bonjour,
PHP 7
Dans la doc sur la structure if (expression) instruction, on voit que :
« ... et si l'expression vaut FALSE, l'instruction sera ignorée. »
Ceci est logique et conforme à à peu près tous les langages que j'ai étudiés, ... sauf que, dans le code
La variable $var n'étant pas définie, echo "Oui" est bien ignoré le code répond "Non", parfait, mais dans ce code ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php if (array_key_exists("var", $GLOBALS)) echo "Oui"; else echo "Non"; ?>
La variable $var n'existe toujours pas et la commande d'assignation de $var" devrait être ignorée, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php if (array_key_exists("var", $GLOBALS)) $var = $GLOBALS['var']; else echo "Non"; ?>
Alors comment se fait-il que j'obtienne l'erreur suivante :
« PHP Notice: Undefined index: var in C:\inetsrv\wwwroot\test\testPHP.php on line 2 »
Pourquoi php cherche-t-il la variable $GLOBALS['var'] si l'expression du if retourne false ?
Même problème avec cette forme :
Le code répond "var existe", ce qui est correct, mais pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $var = "truc"; $var = (array_key_exists("var", $GLOBALS) ? "var existe" : "var n'existe pas"); echo $var; ?>
plante avec la même erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $var = (array_key_exists("var", $GLOBALS) ? "var existe" : "var n'existe pas"); echo $var; ?>
Partager