2014-11-28 2 views
1

도와 드릴까요? 누군가이 PHP 코드 라인의 의미를 설명 할 수 있습니까?PHP 변수 지정에 대한 정보

$options = ($options ?: array()) + $this->options; 

감사

이 동등
+0

키워드는 다음과 같습니다. 삼항 연산자, 배열 병합. –

답변

0

:

if (!$options) 
    $options = array(); 

$options = $options + $this->options; 

?:는 삼원 연산자이다. $options이 true로 평가되면 반환되고, 그렇지 않으면 빈 배열이 반환됩니다.

+operator 주어진 두 배열은 짧은 그들에게

+0

대단히 감사합니다! –

0

연결하여 새로운 배열을 작성

$options$this->options 배열을 병합하여 배열 $options 만들기.

$options ?: array() 

$options이면 truthy (존재와 false 아닌 경우 아마도)이기 때문에 이것은 $options 값을 반환 할 것이며, 그렇지 않으면 빈 배열을 반환한다. It's shorthand syntax for :

$options ? $options : array() 

따라서이 결과는 배열입니다. 이를 위해 $this->options 배열은 +을 통해 추가됩니다. + array union operator은 이미 존재하지 않는 왼쪽에서 오른쪽으로 키를 추가합니다.

결과적으로 두 옵션 배열 사이에 형식 안전 ($options이 배열이 아님) 합병이 발생합니다. "유형 안전"은 상대적이며, $options이 숫자이거나 객체이거나 다른 경우에도 여전히 오류가 발생합니다. 그러나 우리는 $optionsfalse 또는 null이거나 array 일 수 있으리라 예상 할 수 있습니다.

+0

대단히 고마워요! –