La característica de cortocircuito de los operadores php

La característica de cortocircuito de los operadores php

1. Operadores lógicos: lógico y (&&) y lógico o (||), hay una característica de cortocircuito

Los siguientes dos operadores en PHP tienen características de cortocircuito: son lógicos AND (&&) y lógicos OR (||) de operadores lógicos, y existe una característica de cortocircuito.

Lógico o, uno verdadero es verdadero, falso es falso (uno verdadero regresa, todos los falsos se saltan y no regresan)

$a = 1;
$flag = ($a == 1 || $c = 100); 

echo '$c的值:'.$c.' $flag的值:'.$flag;
//输出 $c的值: $flag的值:1(true隐式转换为字符串1)

El resultado de la operación lógica u es que mientras uno de los dos lados del operador (||) sea verdadero, el resultado devolverá "verdadero" y no se ejecutará ninguna otra expresión , por lo que en esta declaración, se ha Se considera que el valor de retorno de a es "verdadero", ya no se ejecutará si el valor de retorno dado a a es "verdadero", ya no se ejecutará paraSi el valor de retorno de a es " verdadero " , la asignación a c ya no se realizará , lo que formará un fenómeno de cortocircuito, por lo que la siguiente declaración de salida no generará el contenido.

Y lógico, verdadero es verdadero, uno falso es falso (todos los verdaderos regresan, uno falso se salta y no regresa)

$a = 1;
$a == 2 && $c=100; 

echo '$c的值:'.$c.' $flag的值:'.$flag;
//输出 $c的值: $flag的值:(flase隐式转换为空字符串)

El operador de lógica y (&&), el método de operación de la lógica y es que las expresiones en ambos lados del operador son "verdaderas" para continuar ejecutando otras declaraciones y devolver directamente un valor "falso", por lo que esta declaración no será ejecutado $ La asignación de c.

2. Operadores bit a bit: bit a bit y (&) y bit a bit o (|), no hay función de cortocircuito

Operadores bit a bit: bit a bit y (&) y bit a bit o (|), estos dos operadores no tienen características de cortocircuito, aunque sus métodos de operación son similares a los de lógico y lógico o, pero no tienen fenómeno de cortocircuito. , debido a que la operación bit a bit y la operación de paridad de la expresión en la que participa en la operación son todas 1, devuelve 1, de lo contrario devuelve 0, y la operación bit a bit o de paridad devuelve 1, de lo contrario devuelve 0.

Bit a bit OR, la paridad devuelve 1 si es diferente, de lo contrario 0 (los "bits" bit a bit son binarios)

$a = 1;
$flag1 = ($a == 1 | $c = 100); // 1 | 110 0100 = 110 0101

echo '$c的值:'.$c.' $flag1的值:'.$flag1.' $flag2的值:'.$flag2;
//输出 $c的值:100 $flag1的值:101 $flag2的值:100

Bit a bit y, la misma operación de bit devuelve 1 cuando ambos son 1; de lo contrario, devuelve 0 (bit a bit "bit" es binario)

$a = 1;
$flag1 = ($a == 1 & $c = 100); // 1 & 110 0100 = 0
$flag2 = ($a == 2 & $c = 100); // 0 & 110 0100 = 0
$flag3 = (1 & 1); // 1 & 1 = 1
$flag4 = (12 & 12); // 110 0110 & 110 0110 = 110 0110
$flag5 = (12 & 13); // 110 0110 & 110 0111 = 110 0110
$flag6 = (13 & 12); // 110 0111 & 110 0110 = 110 0110

echo '$c的值:'.$c.' $flag1的值:'.$flag1.' $flag2的值:'.$flag2.' $flag3的值:'.$flag3.' $flag4的值:'.$flag4.' $flag5的值:'.$flag5.' $flag6的值:'.$flag6;
//输出 $c的值:100 $flag1的值:0 $flag2的值:0 $flag3的值:1 $flag4的值:12 $flag5的值:12 $flag6的值:12

3. Aplicación de características de cortocircuito en declaraciones de juicio.

Debido a la función de cortocircuito del operador, podemos usar esta función para escribir algunas declaraciones de juicio, lo que puede aumentar la flexibilidad del programa . Por ejemplo, podemos usarlo para juzgar al abrir un archivo :

$file = fopen('a.txt','r') or die('文件不存在。');  

Al configurar el cortocircuito lógico o del operador de esta manera, es posible completar el juicio sobre si existe un archivo. El comando die() es para finalizar la ejecución de todo el archivo. Si el programa se ejecuta hasta que haya die(), finalizará la ejecución del programa , no ejecutará otros códigos en la página y generará un mensaje de error. .

Supongo que te gusta

Origin blog.csdn.net/heshihu2019/article/details/132080679
Recomendado
Clasificación