Je suis d'accord avec les suggestions des autres réponses, mais la réponse réelle à votre question est la suivante:
Dans la documentation PHP disent-ils pour prendre soin lorsque l'on compare la valeur de retour d'inclure. C'est parce que c'est une construction spéciale et les parenthèses ne sont pas nécessaires.
Alors, quand vous faites cela (sans parenthèses d'emballage):
@include("ssssss.php") or die("not found");
Vous êtes en train de faire, parce que or
est évalué en premier:
@include (("ssssss.php") or die("not found"));
Maintenant, "ssssss.php" est une chaîne non vide qui évalue logiquement à true.
or
est un opérateur logique qui donne true si l'un des paramètres est vrai (ou les deux). En outre, cet opérateur est en court-circuit: si le premier paramètre est vrai, php sait déjà que l'opérateur or
retournera vrai, donc il ne perdra pas de temps à évaluer le deuxième paramètre, et die()
n'est pas exécuté.
Alors enfin, or
donne vrai et votre phrase becames ceci:
@include (1);
Php tente de « inclure 1 », et il soulèverait un avertissement, mais ne pas à cause de la @
.
Ici, vous avez un similar example in php.net.
Votre première phrase n'est pas le même cas.
$file= @fopen("ssssss.php", r) or die("not found");
fopen
est juste une fonction de régulière Php avec ses parenthèses. Ici, vous devez avoir à l'esprit deux opérateurs: =
et or
.
=
a higher precedence que or
, donc, si le résultat de fopen est correctement attribué à $file
(et il est), cette opération retourne vrai. Et, comme je l'ai déjà expliqué, "true or
rien d'autre", donne true mais die() n'est pas exécuté à cause de l'opérateur de court-circuit.
merci beaucoup @nanocv. Je vois maintenant . mais pourquoi devient-il '@include (1)'? – Mahmoud
mais le même concept peut s'appliquer au premier code aussi !! : '$ file = @fopen ((" ssssss.php ", r) ou die (" non trouvé "));' mais ce n'est pas le cas !!! – Mahmoud
Vous êtes les bienvenus @Mahmoud! J'ai édité ma réponse pour expliquer vos questions dans les deux commentaires (pour le compte rendu). J'espère que cela aide! – nanocv