2016-10-27 20 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

問題は、あなたの$MyOptions配列が存在しないで、あなたはいくつかの方法でこれを避けることができますが、この場合、私の好ましい選択肢は全体if置き換えることであろう指標cである - とelse文を。

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

??は、Null Coalescing operatorです。

ヌル合体演算子(??)はisset()と組み合わせて三元を使用するために必要とする一般的なケースのための糖衣構文を追加しました。存在する場合、最初のオペランドを返し、NULLではありません。それ以外の場合は、2番目のオペランドを返します。

これはPHP 7でのみ利用可能であることにご注意ください。そうでない場合は、isset()を使用してインデックスが存在するかどうかを確認する必要があります。

+0

ちょうどそれを試しました...これはうまく動作しますありがとう! –

+0

こんにちは@LaurentZotto、これまたは任意の回答があなたの質問を解決した場合は、[それを受け入れる](http://meta.stackexchange.com/q/5234/179419)のチェックマークをクリックして検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 – worldofjr

+0

私はそれを正しく確認しましたか? –

関連する問題