文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在 PHP 中显示所有错误

2024-02-27 20:36

关注

我们将介绍一种使用 error_reporting() 函数和 ini_set() 函数在 PHP 脚本中显示错误的方法。第一种方法报告错误,而第二种方法覆盖 php.ini 文件或 Apache 配置文件并打开以仅显示当前脚本的错误。

我们将演示另一种使用相同函数显示 PHP 错误的方法-第一种方法中的 error_reporting() 函数和 ini_set() 函数。将该方法与第一个方法区分开来的关键点是,它使用另一个带有 display_startup_errors 指令的 ini_set() 函数,而 error_reporting() 函数则采用整数值作为参数。

我们将介绍一个永久性的解决方案,以显示所有 PHP 错误,并更改 php.ini 文件中的配置。上面提到的两种方法将无助于显示解析错误,例如缺少大括号和分号。


error_reporting('E_ALL') 函数和 ini_set() 函数与 display_errors 指令一起使用以显示警告错误

我们可以使用 error_reporting() 函数报告 PHP 脚本中的所有类型的错误。为此,我们使用命名常量 E_ALL 作为函数中的参数。它报告各种 PHP 错误。然后,我们可以使用 ini_set() 函数显示报告的错误。该函数将指令 display_errors 设置为 true。因此,它在 php.ini 文件中设置配置以设置错误的可见性。但是,执行当前脚本后,指令的原始值将在 php.ini 文件中恢复。

为了演示,将 error_reporting(E_ALL) 编写为脚本代码的第一行。在 ini_set 功能中将 display_errors 设置为 1。回显诸如'This is a warning errorr'之类的消息。使用 include() 函数可包含一个名为 file.php 的外部文件。然后运行脚本。

下面的示例尝试在 PHP 中显示警告错误。此错误类型通知脚本中存在一些问题,而没有停止脚本的运行。该示例在脚本中包含文件 file.php。由于根文件夹中没有此类文件,因此脚本将不会加载该文件并显示错误。由于这是一个警告错误,因此 echo 语句会与错误一起运行。要了解有关 error_reporting() 函数的更多信息,请访问 PHP 手册

示例代码:


# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>

输出:


This is a warning error 
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5** 
 
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**

error_reporting('-1') 函数和 ini_set() 函数与 display_errorsdisplay_startup_errors 指令一起使用以显示错误

error_reporting() 函数还采用整数值作为参数。我们可以使用这种方法来显示 PHP 中的错误。PHP 中有很多错误级别。-1 级别表示所有 PHP 错误。传递值 -1 可以在 PHP 的未来版本中使用,即使使用新的级别和常量也是如此。有时,ini_set() 函数中的 display_errors 指令并不总是处理 PHP 启动时遇到的错误。在这种情况下,我们可以使用 display_startup_errors 来显示错误。

例如,将 ini_set() 函数的变量设置为 display_startup_errorsdisplay_errors。在 ini_set() 函数中将它们设置为 true,由 1 表示。将 error_reporting 设置为 -1。将值 10 分配给变量 $a 并输出变量 $b

在下面的示例中,脚本遇到通知错误。该代码尝试打印未定义的变量。

示例代码:


#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>

输出:


**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**

修改 php.ini 文件中的指令以显示所有错误,包括 PHP 中的解析错误

我们可以修改 php.ini 文件中的指令,以在上述方法无效时显示 PHP 错误。php.ini 文件包含运行 PHP 脚本时所需的默认配置。上面提到的方法仅在运行时更改指令的值,而修改 php.ini 文件则永久更改这些值。但是,我们不应该在生产级别上遵循这种做法。

要更改 php.ini 文件指令的值,请首先在系统中找到该文件。使用以下脚本。


#php 7.x
<?php
phpinfo();
?>

找到 Loaded Configuration File,你可以看到 php.ini 文件的位置。在文件中,找到指令 display_errorsdisplay_startup_errors,并将其值更改为 on。找到 error_reporting 并将其更改为 error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING。然后,重新启动 Apache 的 Web 服务器。

例如,在 PHP 文件中,设置 error_reporting(-1)。给变量 $a 赋值 Orange,但不要在其后写分号。在另一行中打印变量。

在代码示例的输出部分中,遇到并显示了解析错误。因此,配置 php.ini 文件也可以显示解析错误。

代码示例:


#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>

输出:


**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯