在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中复制例外?
发布于 2020-02-24 12:55:34
Laravel最有可能使用set_error_handler设置自定义错误处理程序函数:
https://www.php.net/manual/en/function.set-error-handler.php
您可以定义管理错误的自定义方法。
之前的回答很抱歉。
发布于 2020-02-24 13:27:28
如果未定义变量,则函数is_null触发器会发出通知。Laravel将该通知转换为例外。
有两个函数可以用来检查未定义的变量,这些变量不会触发通知。
isset https://www.php.net/manual/en/function.isset.phpempty https://www.php.net/manual/en/function.empty.php第一个将返回false为null,因此您必须否定它。
https://stackoverflow.com/questions/60376175
复制相似问题