2011-07-06 3 views
2

PHP에서 이와 같이 OR 인수를 사용할 수 있습니까? $ x가 null이면 $ y를 $ var로 지정합니다.PHP에서 사용할 수있는 || (또는) 자바 스크립트와 같은 방식으로?

$var = $x || $y 

간단한 질문, 건배!

+5

너는 너 자신을 시도 할 수 있었다는 것을 알고있다. 다만 말하기. – SteeveDroz

+0

나는 이런 유형의 시나리오에 대한 우수 사례에 대해 나에게 계몽 해주기를 바랬다. 이 질문은 다른 사람들에게도 참고가 될 것입니다. – wilsonpage

+0

참조 : http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php – KingCrunch

답변

8

번호 PHP의 부울 연산자 평가 생략 할 수 있습니다 나중에

$var = $expressionToTest 
    ? $valueIfExpressionTrue 
    : $valueIfExpressionFalse 
PHP5.3와

나처럼 작동 true 또는 false이 아니라 Javascript와 같은 피연산자 값입니다.

$var = $x ? $x : $y; 

5.3 있기 때문에, 비록이 쓸 수, 기본적으로 자바 스크립트의 ||하는 것과 같은 효과가 있습니다 :

$var = $x ?: $y; 

$x 그래도 존재해야합니다 그래서 당신이 뭔가를 작성해야 그렇지 않으면 isset으로 먼저 확인해야합니다.

3

아니, 이런 식으로 당신은 $var

$var = $x or $y; 

의미에 부울을 할당 : $var$x 또는 $y 경우, true입니다. 당신은 삼항 연산자를 찾고 있습니다

$var = isset($x) ? $x : $y; 
// or 
$var = empty($x) ? $y : $x; 

삼항 연산자는 항상 당신이 $valueIfExpressionTrue

$var = $expressionToTest ?: $valueIfExpressionFalse; 
1
$x=0; 
$y=9; 
$var = ($x)?$x:$y; 

echo $var; 

변수 x가 null이면 var가 9가되거나 그렇지 않으면 x 값이됩니다.

0

이 질문은 이미 대답하지만, 내가 SOMETHING이 경우이 정의되지 않은 경우 PHP

defined('SOMETHING') OR define('SOMETHING', 1); 

ORAND 사업자의 다른 사용에주의를 지적하고 싶었 Juist의 (defined('SOMETHONG')false로 평가) 이 평가에 $admin 경우 OR 후 식은

$admin AND show_admin_controls(); 

평가 될 부울 true, show_admin_controls() 함수가 호출됩니다.

일반적으로 어떤 상수가 정의되어 있는지 확인하기 위해 사용하지만, 다른 용도로이 구문을 사용하여 잘 보이고 실제로 읽을 수있는 코드의 예제를 많이 보아 왔습니다.

관련 문제