1
짧은 질문입니다.키가 설정되어 있지 않지만 배열 크기> 0
다음 예 주어진다 :
가$arr = array();
$arr[0] = false ?: NULL;
var_dump($arr[0]);
var_dump($arr[1]);
var_dump(isset($arr[0]));
var_dump(isset($arr[1]));
var_dump(count($arr));
결과 출력은 :
NULL
NULL
bool(false)
bool(false)
int(1)
이유 결과 배열 1 대신에 0의 크기를 가질 않고,이를 방지 할 수있는 방법이 존재 삼항 연산자를 사용할 때 어떻게됩니까? 버그입니까? 의도 한 행동입니까?
btw, 전 PHP 5.3.3-7을 실행 중이지만 지금은 다른 버전에서 테스트 할 수 없습니다.
빠른 응답을 주셔서 감사합니다. 그래서, 삼항 연산자를 사용할 때이 동작을 피할 수있는 방법이 있습니까? 아니면이 경우 긴 if() {} 문을 사용해야합니까? –
@FlorianKernler : 실제로 설정을 해제하려면'unset()'을 호출해야합니다. 배열의 요소를 NULL로 설정하는 것이 유효한 선택이며 자주 사용되기 때문입니다. –
사실 내가 삼항 연산자를 사용하는 동안 "비어 있으면 설정하지 마십시오"와 같은 것을 찾고있었습니다. 변수를 먼저 설정 한 다음 설정을 해제하면 나에게 효율적으로 들리지 않습니다. –