2016-09-15 9 views
2
var foo, bar; 

foo = 'hello'; // first 
bar = 'world'; // otherwise 

var baz = foo || bar; 

console.log(baz); 

위의 작업을 수행하는 PHP 방법이 궁금하십니까?변수를 조건부로 선언하십시오.

$foo = $bar = ''; 

$foo = 'hello'; // first 
$bar = 'world'; // otherwise 

$baz = $foo ? $foo : $bar; 

echo $baz; 

을 ..하지만 내 경우에 $foo는 MySQL의 쿼리이기 때문에 여기에 최적화하기 위해 찾고 있어요 그리고 난 그 수표에 다음 임무를 두 번 실행 생각 : 난 이미 ternary 연산자에 대해 알고 (?). 어쨌든, 나는 그것을하는 더 우아한 DRY 방법이 있는지 알고 싶다.

편집 :

PHP7에서 당신이 할 수 있습니다

$baz = $foo ?? $bar; 

을 ...하지만이 특정한 경우에 대한 PHP 5+

답변

3

에서 뭔가를 찾고는, PHP는 ?: 속기를 제공합니다 한 번만 조건을 평가합니다 :

$baz = $foo ?: $bar; 

하지만 기능적으로는 $foo ? $foo : $bar과 같습니다.

편집 : $foo ?? $bar$foonull 일 때만 해당됩니다. 이 연산자는 PHP 7 이후에만 사용할 수 있습니다. ?: 그러나 PHP 5.3부터 사용할 수 있습니다. 삼자는 false (느슨하게)을 검사합니다.

+0

슈퍼! 감사. 그것은 PHP7'??'과 같은가요? – 3zzy

+2

@ 3zzy 내 편집을 참조하십시오. '$ foo = false; $ baz = $ foo ?? "alt"; $ qux = $ foo? : "alt";는 다릅니다. 그러나 진리 가치에 있어서도 마찬가지입니다. – bwoebi

+0

아하, 잘 알고 있습니다. 감사! PHP7을 사용하고 있지만 코드가 이전 버전과 호환되기를 원합니다. – 3zzy

관련 문제