我不是在说这个:
如何避免未定义索引
我说的是一个崩溃,致命错误。不是关于"通知"。
EDIT即使这是由通知引起的,结果也是崩溃。我的问题是:如何配置laravel,使其不会在通知时崩溃?
我运行的是laravel 5.3和php 7。
我的错误:
ErrorException in UploadController.php line 149:
Undefined index: AS
我代码:
if (!PlumConstants::$plum_us_states[$state]) {
$state = '';
}
引用常量类:
class PlumConstants {
public static $plum_us_states = array(
'AL' => 'Alabama',
'AK' => 'Alaska',
'AZ' => 'Arizona',
'AR' => 'Arkansas',
'CA' => 'California',
// ...
);
}
嗯,这有点好笑,不是吗?因为我正在检查条目是否存在
if (!PlumConstants::$plum_us_states[$pstate]) {
但不知何故,PHP似乎恐慌和崩溃,因为没有一个定义的索引…而这正是我在代码中所做和避免的。有什么方法可以让你停止这种奇怪的行为吗?我可能会用isset()
,但我觉得它很丑。因为isset
并不意味着它不是空的。做这件事的好方法是什么?
如果你使用的是php7你可以使用
PlumConstants::$plum_us_states[$pstate] ?? false
而不是!PlumConstants::$plum_us_states[$pstate]
- 好吧,你的例子中没有'AS'键。 在第一个代码示例中指定了$state变量,在第二个代码示例中指定了$pstate
- 尝试检查
if (!array_key_exists($pstate, PlumConstants::$plum_us_states)) {