getopt -> return PHP 注意:未定义索引:

getopt -> return PHP Notice: Undefined index:

我正在使用 getopt 将变量传递给我的脚本,但我收到消息:

PHP Notice: Undefined index:

这是我的代码:

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

我错过了什么?

问题是您的 $MyOptions 数组中的索引 c 不存在,您可以通过多种方式避免这种情况,但在这种情况下我的首选方案是替换整个if-else 声明;

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

??就是Null Coalescing operator

The null coalescing operator (??) has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not NULL; otherwise it returns its second operand.

请注意,这仅适用于 PHP 7,否则您将不得不使用 isset() 检查索引是否存在。