【发布时间】:2020-02-24 12:40:43
【问题描述】:
在 Laravel 终端命令的深处,我有以下代码:
<?php
/* ... */
class TrackShipment extends Command
{
/* ... */
public function handle()
{
/* ... */
if (is_null($eventHook) || $eventHook->uri != $statusHook->uri) {
/* ... */
}
}
}
当这部分代码执行时,进程终止并出现以下异常
ErrorException : Undefined variable: eventHook
这很令人惊讶,因为我在各种地方都使用了类似的代码,当对未设置的变量调用 is_null 时 PHP 将返回 true,尽管它会在 stderr 上抱怨它并发出通知。
我假设 Laravel 正在从其代码中调整 PHP 设置,以使 is_null 抛出异常,而不是向 stderr 打印通知。这是什么设置?我将如何在香草 php7.2 中复制异常?
【问题讨论】:
-
不确定stackoverflow.com/questions/16537562/… 是否仍然有效或是否已过时。
-
NULL和未定义的变量不同,对我来说出现这种错误很正常。您必须在您的条件中添加isset($eventHook) and ...。异常是正常的。我想这取决于你的error_reporting级别 -
尝试使用
empty()
标签: php laravel command-line-interface php-7