2017-03-23 8 views
0

없이 if 문에는 isset을 수행PHP 그룹화 문

if ($something !== $array[$key]) { 
    // do something 
} 

문 있다면이있다 그러나 나는 $array[$key]가 있는지 100 % 확신 할 수 없다. 그래서 같은 것을 할 싶습니다

if ($something !== $array[$key] ?? null) { 
    // do something 
} 

다음은 배열 키가 존재하거나 변수에서 다르거 나 없을 때 문을 실행해야합니다. 물론 , 나는 이런 식으로 뭔가를 할 수 :

if ($something !== (isset($array[$key]) ? $array[$key] : null)) { 
    // do something 
} 

그러나 나는이 코드를 덜 읽을 수 있기 때문에이를 방지하고자합니다.

$compare = $array[$key] ?? null; 
if ($something !== $compare) { 
    // do something 
} 
+2

왜 '$ something! == $ array [$ key] ?? 널'은 당신을 위해 작동하지 않습니다? –

+0

@AlexBlex, 아마도 "Notice : Undefined offset :"때문에 $ array [$ key]가 설정되어 있지 않습니다. – xlordt

+0

'$ something! == $ array [$ key] ?? null '은 통고를 받기 때문에 나에게 적합하지 않다 :'Undefined index :'. – SheperdOfFire

답변

2

다음 코드가 도움이 될 수 있습니다 :이 이외의 다른 옵션이

배열 자체가 존재하거나 키가 있으면 당신도 확실하지 않은 경우이 코드가 도움이 될 것입니다
if (!array_key_exists($key, $array) || $array[$key] !== $something) { 
    // Do it 
} 
0

. 나는 특정 사건에 대해 이것을 만들었지 만, OP는 미래의 누군가가 이것으로부터 이익을 얻는 경우를 대비하여 상급 수준을 원하지 않을 수도 있습니다.

if (is_array($array)) // Check if this array exists 
{ 
    if (array_key_exists($key , $array)) // Check if this key exists 
    { 
     if ($something !== $compare) // Your condition 
     { 
      // do something 
     } 
    } 
}