2016-10-27 1 views
0

내가 내 스크립트에 변수를 전달 getopt는을 사용하고 있습니다,하지만 메시지 수 :getopt는 -> 반환 PHP 공지 : 정의되지 않은 인덱스 :

PHP주의를 : 정의되지 않은 인덱스 :

내 코드는 다음과 같습니다.

$MyOptions = getopt("c:hp:"); 
if ($MyOptions['c']) { //line wher error show up! 
    $MyClub = $MyOptions['c']; 
} else { 
    $MyClub = '53'; 
} 

내가 무엇을 놓쳤을까요?

+0

사용자 코드를 디버그하십시오. 변수를 검사하려면 ['var_dump()'] (http://php.net/manual/en/function.var-dump.php)를 사용하십시오. – PeeHaa

+0

사용할 수 없습니다. 출력을 보려면 CLI가 없습니다. –

+0

Errrrmm ... wat? – PeeHaa

답변

0

문제는 여러 가지 방법으로이 문제를 방지 할 수 있지만,이 경우에 내 원하는 옵션은 전체 if 대체하는 것, 존재하지 않는 $MyOptions 배열의 인덱스 c입니다 - else 문을;

$MyClub = $MyOptions['c'] ?? '53'; 

??Null Coalescing operator입니다.

널 유착 연산자 (??)는 isset()과 함께 삼원를 사용할 필요들의 일반적인 경우에 대한 문법적으로 추가되었다. 존재하는 경우 첫 번째 피연산자를 반환하고 NULL은 반환하지 않습니다. 그렇지 않으면 두 번째 피연산자를 반환합니다.

이 옵션은 PHP 7에서만 사용할 수 있습니다. 그렇지 않으면 isset()을 사용하여 색인이 존재하는지 확인해야합니다.

+0

방금 ​​해 보았습니다 ... 감사합니다. –

+0

안녕하세요 @LaurentZotto,이 답변이 문제를 해결 한 경우 [확인] (http://meta.stackexchange.com/q/5234/179419)를 클릭하여 확인하십시오. 이는 해결책을 찾았으며 응답자와 자신에게 어느 정도의 평판을 제공한다는 것을 더 넓은 커뮤니티에 나타냅니다. 이를 수행 할 의무는 없습니다. – worldofjr

+0

바로 확인 했습니까? –

관련 문제