2012-12-07 3 views
2

멋쟁이,PHP, 경고없이 배열 값을 얻는 더 쉬운 방법

아래 문장을 작성하는 더 간결한 방법이 있습니까? 배열 키가 있는지 확인하지 않으면 PHP 경고가 표시됩니다. 그러나, 아래 또한 약간, 어, 어리 석다.

감사합니다. 이 문자열의 경우

$display_flag = isset($pref_array['display_flag']) && $pref_array['display_flag']; 

: $display_flag 만약

$display_flag = false; 
if (array_key_exists('display_flag',$pref_array) { 
    $display_flag = $pref_array['display_flag']; 
} 

답변

2

당신이 값 경우 확인해야대로, 괜찮이 방법 실제로 존재하지만 삼자 연산을 수행 할 수도 있습니다.

$display_flag = (isset($pref_array['display_flag'])) ? (bool) $pref_array['display_flag'] : false; 

display_flag의 내용이 bool로 유형 변환되었으므로 어느 경우이든 부울 값이 보장됩니다. 또한

당신이 (하지만 난 그것을하지 않는 것이 좋습니다)에 @와 경고 퀠치 수 :

$display_flag = @$pref_array['display_flag'];  
+0

나는 세 가지 해법을 정말 좋아한다. 고마워, 마이크! – dutchman711

7

은 부울입니다

$display_flag = isset($pref_array['display_flag']) ? $pref_array['display_flag'] : false; 
+0

감사합니다. – dutchman711

0
// Get the $pref_array from wherever 

$default_prefs = array(
    "display_flag" => false, 
); 

$pref_array = array_merge($default_prefs, $pref_array); 

// Now you know it's always defined with default values 
0

또 다른 간단한 옵션은 다음과 같습니다

array_get($variable, 'keyName', null) 

세 번째 인수는 기본 값을 .

+0

Laravel을 사용하는 경우에만 사용할 수 있습니다. https://laravel.com/docs/4.2/helpers – Westy92

관련 문제