삼항 연산 연산자의 기능은 "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 ? '': print 'No';
주의해야 할 점: 삼항 연산자를 사용할 때는 echo 대신 print 문을 사용하는 것이 좋습니다. 성명.
다음 일련의 명령문을 이해하는 데 주의하세요:
$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
이것은 $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?'xx':$a<$c?'yy':$a<$d?'zz':'oo'; ?>
일반적으로
다른 언어 (예: C 또는 Java)의 규칙을 따릅니다. ), 위 코드의 연산 논리는 다음과 같습니다. $a<$b => true => 'xx' ==> 结束
<?php $a=1;$b=2;$c=3;$d=4; echo (($a<$b?'xx':$a<$c)?'yy':$a<$d)?'zz':'oo'; ?>
한 눈에 알 수 있는 것은 이것이 PHP의 연산 논리입니다:
$a<$b => true => 'xx' => true => 'yy' => true => 'zz' => 结束
여기에는 'xx' => true와 'xx' => true라는 두 가지 유형의 변환 프로세스가 포함됩니다.
이건 몰랐습니다. 그 과정이 골치 아픈 일인지, 참으로 이해하기 어렵습니다...마지막으로 다시 위의 코드로 돌아가서 C:
<?php $a=1;$b=2;$c=3;$d=4; echo $a<$b?'xx':($a<$c?'yy':($a<$d?'zz':'oo')); // 括号换下位置就行了, php里括号省不得 ?>
위 내용은 PHP 삼항 연산자 조합 및 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!