防止在PHP中显示"未定义"错误

Ste*_*eve 1 php wordpress

我有PHP代码试图读取很多可能存在或不存在的值.每个失败的读取都会显示"未定义"错误.我可以用类似的东西来沉默它

if(!empty($meta['image_1_url'])) $image_1_url = $meta['image_1_url']; 
Run Code Online (Sandbox Code Playgroud)

但我宁愿PHP不要抱怨他们.我已经注释掉了

<?php

    //ini_set('display_errors', 1);
    //error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

我在页面顶部,但错误仍然打印出来.

有谁知道如何防止印刷错误?

Mat*_*ley 7

 error_reporting(E_ALL & ~E_NOTICE);
Run Code Online (Sandbox Code Playgroud)

以上将显示错误和警告,但不会显示通知.

https://secure.php.net/manual/en/function.error-reporting.php

请记住,通知可能很有用.通常,最好以这样的方式编写代码,除非出现问题,否则不应生成通知.

除了您提供的示例,您还可以使用三元运算符:

$image_1_url = isset($meta['image_1_url']) ? $meta['image_1_url'] : '';
Run Code Online (Sandbox Code Playgroud)

即使image_1_url未设置,上述代码也不会生成通知.

从PHP 7开始,您还可以使用Null Coalesce Operator

$image_1_url = $meta['image_1_url'] ?? '';
Run Code Online (Sandbox Code Playgroud)