>  기사  >  백엔드 개발  >  PHP 삼항 연산자 조합 및 사용법

PHP 삼항 연산자 조합 및 사용법

伊谢尔伦
伊谢尔伦원래의
2017-06-21 15:15:491841검색

삼항 연산 연산자의 기능은 "if...else" 프로세스 문과 일치하며 한 줄로 작성되어 코드가 매우 간결하고 실행 효율성이 더 높습니다.

PHP 프로그램에서 삼항 연산자를 적절하게 사용하면 스크립트를 더욱 간결하고 효율적으로 만들 수 있습니다.

코드 형식은 다음과 같습니다: (expr1) ? (expr2) : (expr3);

설명: "expr1" 조건이 true이면 "expr2" 문을 실행하고, 그렇지 않으면 "expr3"을 실행합니다.

동일한 기능을 얻으려면 조건부 처리문을 사용하는 경우 여러 줄의 코드를 작성해야 합니다.

if(expr1) { 
expr2;
} else {
expr3;
}

위에서 언급한 삼항 연산자의 장점은 과장이 아니라고 볼 수 있습니다. 그러나 대부분의 경우 삼항 연산자는 코드가 비교적 간단한 경우, 즉 실행문이 단 한 문장인 경우에만 사용됩니다. 예:

$a>$b ? print "a大于b" : print "a小于b";

실제로 삼항 연산자를 확장하여 사용할 수 있습니다. 설정된 조건이 true인지 여부에 따라 실행 문은 두 개 이상의 문장이 될 수 있습니다.

(expr1) ? (expr2).(expr3) : (expr4).(expr5);

우리는 이를 명확하게 볼 수 있습니다. 여러 개의 실행문은 문자열 연산자 기호(".")를 사용하여 연결할 수 있으며, 각 실행문은 작은 괄호로 묶여 독립적이고 완전한 실행문임을 나타냅니다. 이 확장 이후 해당 기능은 "if...else" 프로세스 문에 더 가깝습니다.

동시에 삼항 연산자를 중첩하여 사용할 수도 있습니다. 예를 들어, a가 b보다 큰 경우: a가 c보다 작으면 x=c-a이고, 그렇지 않으면 x=a-c입니다. 그렇지 않으면 a가 b보다 작으면: b가 c보다 작으면 x=c-b이고, 그렇지 않으면 x=b-c입니다.

$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b- $c);

embedded 집합에 사용된 삼항 연산자는 가독성이 좋지 않아 향후 코드 유지에 문제가 있을 수 있습니다. 그러나 "if...else"와 같은 프로세스 문과 비교하면 그렇습니다. 위의 상황에서는 실제로 너무 간결합니다. 네, 이것이 매력입니다.
게으른 코드 단순성을 추구하는 사람들에게는 삼항 연산자를 사용하여 if 프로세스 문을 대체하는 것이 탁월한 선택이 될 것입니다. "삼항"에서 조건문 이외의 "요소"를 고려할 필요가 없더라도 삼항 연산자를 사용하는 것이 if 문보다 여전히 더 간결합니다. 다음 문의 구문은 정확합니다. 작은 따옴표를 사용하여 두 번째 또는 세 번째 "요소"를 생략합니다.

$a>$b ? print "Yes" : "";
$a>$b ? &#39;&#39;: print &#39;No&#39;;

주의해야 할 점: 삼항 연산자를 사용할 때는 echo 대신 print 문을 사용하는 것이 좋습니다. 성명.

다음 일련의 명령문을 이해하는 데 주의하세요:

$str = $_GET[&#39;abc&#39;] ? &#39;wangjinbo&#39; : &#39;wjb&#39;;

이것은 $str이 $_GET['abc']와 같을 때 할당은 'wangjinbo'이고, 그렇지 않으면 할당은 'wjb'로 이해될 수 없습니다. '; 왜냐하면 동등성을 판단하려면 ==;를 사용해야 합니다. 이유 2: 삼항 연산자의 구문은 위와 같습니다: (expr1) ? (expr2) : (expr3). ' 또는 'wjb'만으로는 의미 있는 결과를 형성할 수 없습니다. expression;

에 대한 올바른 이해는 다음과 같습니다. $_GET['abc']가 비어 있는 경우(즉, PHP에서 '', null, 0, undifine이 모두 부울 값 false와 동일), $str 설정 값은 'wangjinbo', 그렇지 않으면 값은 'wjb'입니다. 연관성:

<?php 
$a=1;$b=2;$c=3;$d=4; 
echo $a<$b?&#39;xx&#39;:$a<$c?&#39;yy&#39;:$a<$d?&#39;zz&#39;:&#39;oo&#39;; 
?>

일반적으로

다른

언어 ​​(예: C 또는 Java)의 규칙을 따릅니다. ), 위 코드의 연산 논리는 다음과 같습니다.

$a<$b => true => &#39;xx&#39; ==> 结束
그러면 최종 결과는 'xx'이고 후속 연산은 왼쪽 결합입니다.

<?php 
$a=1;$b=2;$c=3;$d=4; 
echo (($a<$b?&#39;xx&#39;:$a<$c)?&#39;yy&#39;:$a<$d)?&#39;zz&#39;:&#39;oo&#39;; 
?>

한 눈에 알 수 있는 것은 이것이 PHP의 연산 논리입니다:

$a<$b => true => &#39;xx&#39; => true => &#39;yy&#39; => true => &#39;zz&#39; => 结束

여기에는 'xx' => true와 'xx' => true라는 두 가지 유형의 변환 프로세스가 포함됩니다.

이건 몰랐습니다. 그 과정이 골치 아픈 일인지, 참으로 이해하기 어렵습니다...

마지막으로 다시 위의 코드로 돌아가서 C:

<?php 
$a=1;$b=2;$c=3;$d=4; 
echo $a<$b?&#39;xx&#39;:($a<$c?&#39;yy&#39;:($a<$d?&#39;zz&#39;:&#39;oo&#39;)); 
// 括号换下位置就行了, php里括号省不得 
?>
와 같이 올바른 결합으로 변경합니다.

위 내용은 PHP 삼항 연산자 조합 및 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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