>  기사  >  백엔드 개발  >  PHP 논리 연산자 &, &&, && 및 || 사용의 차이점

PHP 논리 연산자 &, &&, && 및 || 사용의 차이점

伊谢尔伦
伊谢尔伦원래의
2017-06-21 14:58:375905검색

논리 연산자는 값에 대한 논리 연산을 수행하는 것 이상입니다. (&&) 또는 (||)" 이 두 연산자는 프로그램에서 PHP 코드의 실행 속도를 높일 수 있습니다.

먼저 코드 부분을 살펴보세요:

<?php   
    $test="李四";   
    $test=="张三"&&$test="张三来了";   
    echo $test;  //输出“李四”   
    $test="李四";   
    $test=="张三"||$test="张三不在这里";   
    echo $test;  //输出“张三不在这里”   
?>

왜 이런 결과가 발생할까요? 따라하면 일반적인 방법에서는 최소한 IF 문을 사용하여 판단해야 합니다. 그러나 이제 두 개의 논리 연산만 변수의 값을 변경합니다. 논리 연산의 양쪽에서 연산이 수행됩니다. 그리고 "AND" 연산 중 하나가 false인 한 전체 표현식의 결과는 false이므로 왼쪽 표현식이 false인 경우에는 이러한 작업을 수행할 필요가 없습니다. 프로그램의 실행 효율성에 매우 유익하므로 제목에서 알 수 있듯이 효율적인 사용법입니다. 그러나 논리는 다릅니다. 하나가 참인 한 전체 표현은 거짓입니다. 위의 내용을 이해했거나 이해했다면,

물론, 위의 예는 조건부 판단문을 통해 실현될 수 있습니다. 코드의 양을 줄이고 가장 중요한 것은 프로그램의 실행 효율성을 높이는 것입니다. 이것을 마스터하는 것이 핵심입니다. 표현식의 실행 방향은 왼쪽에서 오른쪽으로 값이 바뀌면 실행을 중지합니다. 오른쪽은 표현식이나 함수일 수 있지만 일련의 명령문 조합이나 출력 명령문은 될 수 없다는 점을 언급할 가치가 있습니다. 결국 여전히 논리 표현식

의 구성 요소입니다. &&) 연산: x && y x가 false인 경우 직접 건너뛰고 y를 실행하지 않습니다. "or"(||) 연산의 경우: x||y x가 true인 경우 직접 건너뛰고 y를 실행하지 않습니다. php

<?php
$a=10;
if($a>4 && (++$a>10))
{
}
//输出结果为11.
echo $a;
?>
<?php
$a=10;
if($a>4 and (++$a>10))
{
}
//输出结果为11.
echo $a;
?>
**************************************************************
<?php
$a=10;
if($a>4 && (++$a<10))
{
}
//输出结果为11.
echo $a;
?>
<?php
$a=10;
if($a>4 & (++$a<10))
{
}
//输出结果为11.
echo $a;
?>
*********************************************************
<?php
$a=10;
if($a<4 && (++$a>10))
{
}
//输出结果为10.
echo $a;
?>
<?php
$a=10;
if($a<4 & (++$a>10))
{
}
//输出结果为11.
echo $a;
?>
*******************************************************************
<?php
$a=10;
if($a<4 && (++$a<10))
{
}
//输出结果为10.
echo $a;
?>
<?php
$a=10;
if($a<4 & (++$a<10))
{
}
//输出结果为11.
echo $a;
?>
*******************************************************************
<?php
// 下面的 sktest() 不被调用,原因是它们被运算符“短路”。
$a = (false && sktest());
$b = (true  || sktest());
$c = (false and sktest());
$d = (true  or  sktest());
// "||" 的优先级比 "or" 高
$e = false || true; // $e 被赋值为 (false || true),结果为 true
$f = false or true; // $f 被赋值为 false [Altair注:"=" 的优先级比 "or" 高]
var_dump($e, $f);
// "&&" 的优先级比 "and" 高
$g = true && false; // $g 被赋值为 (true && false),结果为 false
$h = true and false; // $h 被赋值为 true [Altair注:"=" 的优先级比 "and" 高]
var_dump($g, $h);
?>
에서 &와 &&의 유사점과 차이점

위 내용은 PHP 논리 연산자 &, &&, && 및 || 사용의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.