나는 이것이 일반적으로 소위 잘 모르겠지만, 나는 제목이 충분히 잘 전달되기를 바랍니다. 내가 가지고있는 변수 중 일부는 null 일 수 있습니다.
내가하고 싶은 :
$ a가 최초의 null 이외의 변수 = 것으로 끝$a = $b || $c || $d;
.
나는 이것이 일반적으로 소위 잘 모르겠지만, 나는 제목이 충분히 잘 전달되기를 바랍니다. 내가 가지고있는 변수 중 일부는 null 일 수 있습니다.
내가하고 싶은 :
$ a가 최초의 null 이외의 변수 = 것으로 끝$a = $b || $c || $d;
.
제 생각에 PHP는 JavaScript와 같은 방식으로이 기능을 지원하지 않습니다.
당신은, 그러나 같은 것을 할 수 있습니다
$a = $b ? $b : ($c ? $c : $d);
보다 일반적인 솔루션 :
function fallthrough($arr) {
//$arr should be an array of possible values. The first non-null value is returned
do $a = array_shift($arr);
while($a === null && $arr);
return $a;
}
<?php
$a = 0;
$b = false;
$c = true; //should become this
$d = '1';
$e = $a ?: $b ?: $c ?: $d;
var_dump($e);
//bool(true)
//should be '1' if order is different
$e = $a ?: $b ?: $d ?: $c;
var_dump($e);
//string(1) "1"
... 그러나 ?:
좀 새로운, 당신은 혼란 뜻을 동료/동료 코더.
오, 명시된 바와 같이 : NULL뿐 아니라 모든 위조 된 값에 오류가 발생합니다. – Wrikken
나는 그렇게 생각하지 않습니다. 나는 당신이 다른, 좀 힘드는 방법을 사용해야 할 것 같아요. 나는. 과 같이, 변수의 배열을 만들이 아닌 null 값을 찾을 때까지 반복 루프를 중단 : 여기에 몇 가지 다른 답변 말처럼
이$vars = array("b" => $b, "c" => $c, "d" => $d);
foreach($vars as $var) {
if($var != null) {
$a = $var;
break;
}
}
글쎄, 당신은 쓰기의 속기 방법을 사용할 수 있습니다 하지만 읽을 수있는 코드를 작성하는 것도 중요합니다. 위의 코드는 꽤 읽기 쉽습니다.
b OR c OR d의 내용을 a : \에 지정하려고합니까? – theBigChalk
이 언어가 잘못되었습니다. 루비 또는 자바 스크립트에서 작동합니다. PHP에서, AFAIK, 당신은 trinary 연산자로 가서'$ b! == null? $ b : ($ c! == null? $ c : $ d)' – Amadan
또한보십시오 : http://stackoverflow.com/questions/1013493/coalesce-function-for-php – Wrikken