Maison > développement back-end > tutoriel php > PHP utilise-t-il l'évaluation par court-circuit dans les expressions logiques ?

PHP utilise-t-il l'évaluation par court-circuit dans les expressions logiques ?

Susan Sarandon
Libérer: 2024-12-08 16:37:09
original
589 Les gens l'ont consulté

Does PHP Utilize Short-Circuit Evaluation in Logical Expressions?

Évaluation de court-circuit en PHP

Cet extrait de code démontre une instruction PHP if avec plusieurs conditions reliées par l'opérateur logique AND (&&) :

if (is_valid($string) && up_to_length($string) && file_exists($file)) 
{
    ......
}
Copier après la connexion

Est-ce que PHP court-circuite Évaluation ?

Oui, PHP implémente une évaluation de court-circuit pour les opérateurs logiques comme && (AND) et || (OU). Cela signifie que l'interpréteur évalue les conditions de gauche à droite, et si le résultat de la première condition est suffisant pour déterminer le résultat de l'expression entière, les conditions restantes ne sont pas évaluées.

Comment PHP implémente Évaluation de court-circuit

En utilisant l'opérateur && comme exemple :

  1. L'interprète évalue la première condition, is_valid($string).
  2. Si is_valid($string) renvoie false, l'expression est automatiquement évaluée à false, quelles que soient les autres conditions.
  3. Si is_valid($string) renvoie true, l'interpréteur continue d'évaluer la deuxième condition, up_to_length($string).
  4. Uniquement si is_valid($string) et up_to_length($string) renvoient true l'interprète procède-t-il à l'évaluation de file_exists($file).

Pourquoi PHP utilise l'évaluation de court-circuit

L'évaluation de court-circuit aide à optimiser les performances du code en réduisant comparaisons inutiles. Par exemple, dans l'exemple fourni, si is_valid($string) renvoie false, il n'est pas nécessaire de vérifier les conditions restantes, puisque l'expression globale est déjà fausse.

Exemple de démonstration

Pour illustrer l'évaluation d'un court-circuit en action :

function saySomething()
{
    echo 'hi!';
    return true;
}

if (false && saySomething())
{
    echo 'statement evaluated to true';
}
Copier après la connexion

La sortie sera "salut !" même si la deuxième condition de l'instruction if n'est jamais évaluée. En effet,

est évalué en premier, et comme il renvoie false, l'expression entière est fausse.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal