服务器测评网
我们一直在努力
广告
广告
广告
广告
广告
广告
广告
广告
广告
广告

php提示:Cannot use isset() on the result of an expression (you can use "null !== expression" instead)

广告
广告

在 PHP 中,确实不能直接对一个函数调用的返回值使用 isset()。你可以使用 null 比较来避免这种情况。以下是修改后的代码示例,采用比较的方法来检查返回值:

方法 1: 使用 null 比较

// 判断是否开启了邮件通知
if (configSystem('email_notice') !== null && configSystem('email_notice') == 1) {
    // 如果用户邮箱验证了并且开启了邮件通知
    if ($user->email_notification == 1 && $user->email_verify == 1) {
        foreach ($expireServers as $server) {
            echo (date('Y-m-d H:i:s') . ' - 发送到期邮件通知') . PHP_EOL;
            Log::info(date('Y-m-d H:i:s') . ' - 发送服务器到期通知邮件');
            EmailService::sendServerExpireNotice($user, $server);
        }
    }
}

方法 2: 使用 null 合并运算符(推荐)

如果您使用 PHP 7.0 或更高版本,可以继续使用 null 合并运算符,也可以用下面的方法来简化:

// 判断是否开启了邮件通知
if ((configSystem('email_notice') ?? 0) == 1) {
    // 如果用户邮箱验证了并且开启了邮件通知
    if ($user->email_notification == 1 && $user->email_verify == 1) {
        foreach ($expireServers as $server) {
            echo (date('Y-m-d H:i:s') . ' - 发送到期邮件通知') . PHP_EOL;
            Log::info(date('Y-m-d H:i:s') . ' - 发送服务器到期通知邮件');
            EmailService::sendServerExpireNotice($user, $server);
        }
    }
}

解释

  • !== null:这确保了 configSystem('email_notice') 返回的值不为 null
  • null 合并运算符 ??:如果 configSystem('email_notice') 的返回值是 null,它将默认使用 0,否则使用该值。

这两种方式可以避免您最开始遇到的错误。选择适合您代码风格和PHP版本的方法即可。

好主机测评广告位招租-300元/3月
赞(0) 打赏
未经允许不得转载:好主机测评网 » php提示:Cannot use isset() on the result of an expression (you can use "null !== expression" instead)
好主机测评广告位招租-200元/3月
好主机测评广告位招租-100元/3月

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫