Maison > développement back-end > tutoriel php > l'impression n'est pas une fonction

l'impression n'est pas une fonction

藏色散人
Libérer: 2023-04-06 20:14:01
avant
2490 Les gens l'ont consulté

l'impression n'est pas une fonction

Cela vient d'une question apparemment étrange :

if (print("1\n") && print("2\n") && print("3\n") && print("4\n")) {
    ;
}
Copier après la connexion

Qu'attendez-vous de ce code ?

En fait, le résultat est :

4
111
Copier après la connexion

Souvent, nous ignorons que print est une construction grammaticale (constructions de langage), ce n'est pas une fonction et la liste des paramètres ne nécessite pas de parenthèses (même si vous écrivez des parenthèses, les parenthèses le seront également être ignoré lors de l'étape d'analyse syntaxique), c'est juste une "expression (expr)" qui renvoie toujours 1:

expr :
   T_PRINT expr
 | '(' expr ')'
;
所以其实上面的代码在php看来是:
if (print ("1\n" && print ("2\n" && print ("3\n" && print "4\n")))) {
  ;
}
Copier après la connexion

Donc, sortie 4, puis sortie "3n" && print Le résultat est 1, puis sortie "2n" && 1, et enfin "1n" && 1

Et si nous voulons atteindre l'intention prévue du code ci-dessus, nous devrions écrire comme ceci :

if ((print "1\n") && (print "2\n") && (print "3\n") && (print "4\n")) {
    ;
}
Copier après la connexion

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!

Étiquettes associées:
source:laruence.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal