【问题标题】:Turn off deprecated errors in PHP 5.3关闭 PHP 5.3 中已弃用的错误
【发布时间】:2011-02-17 17:27:25
【问题描述】:

我的服务器正在运行 PHP 5.3,而我的 WordPress 安装正在向我吐出这些错误,导致我的 session_start() 中断。

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 647

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 662

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 669

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 676

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 712

这很烦人,但我不想关闭屏幕错误报告。如何禁用这些令人讨厌的已弃用警告?

我正在运行 WordPress 2.9.2。

【问题讨论】:

  • 3.3.1 不是 wordpress 的最新版本吗?
  • 他似乎喜欢一个带有旧 wordpress 的旧 php

标签: php wordpress deprecation-warning


【解决方案1】:

您可以通过调用以下函数在代码中执行此操作。

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

error_reporting(E_ALL ^ E_DEPRECATED);

【讨论】:

  • 谢谢 Robus,这会杀死任何 php 错误报告吗?
  • 不,第一个基本上告诉 php 显示 ERROR/WARNING/PARSE/NOTICE 错误,第二个告诉 php 显示除 DEPRECATED 之外的所有错误。
  • 在 Ubuntu 上使用 PHP 5.5.9 "error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT" 没有效果....但是,在我的示例中,"@mysql_connect();"做这个把戏:-(
  • @molokoloco 你做错了两次。首先,您没有解决任何问题。你只是让它沉默。第二,您仍在使用已弃用的mysql。你至少应该切换到mysqli
  • 不起作用。它在某处被覆盖吗?你把这个放在哪里?
【解决方案2】:

我需要适应这个

error_reporting = E_ALL & ~E_DEPRECATED

【讨论】:

    【解决方案3】:

    要仅获取导致应用程序停止工作的错误,请使用:

    error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));
    

    这将停止显示通知、警告和已弃用的错误。

    【讨论】:

      【解决方案4】:

      我刚刚遇到了一个类似的问题,一个 SEO 插件发出大量警告,使我的博客磁盘使用量超过了计划限制。

      我发现您必须在 wp-config.php 文件中的 wp-settings.php 要求之后包含 error_reporting 命令:

         require_once( ABSPATH .'wp-settings.php' );
         error_reporting( E_ALL ^ ( E_NOTICE | E_WARNING | E_DEPRECATED ) );
      

      通过这样做,您的错误日志文件中不会再附加警告、通知或弃用行!

      在 WordPress 3.8 上测试,但我猜它适用于每个安装。

      【讨论】:

        【解决方案5】:

        前面的答案都是正确的。由于没有人提示过如何关闭 PHP 中的所有错误,我想在这里提一下:

        error_reporting(0); // Turn off warning, deprecated,
                            // notice everything except error
        

        也许有人会觉得它有用...

        【讨论】:

          【解决方案6】:

          在文件 wp-config.php 中,您可以找到常量 WP_DEBUG。确保将其设置为 false。

          define('WP_DEBUG', false);
          

          这适用于 WordPress 3.x。

          【讨论】:

            【解决方案7】:

            您必须编辑 PHP 配置文件。找线

            error_reporting = E_ALL
            

            并将其替换为:

            error_reporting = E_ALL ^ E_DEPRECATED

            如果您无权访问配置文件,可以将此行添加到 PHP WordPress 文件(可能是 headers.php):

            error_reporting(E_ALL ^ E_DEPRECATED);
            

            【讨论】:

            • 最好将此添加到wp-config.php。它旨在使用配置设置进行编辑。
            【解决方案8】:

            我倾向于使用这种方法

            $errorlevel=error_reporting();
            $errorlevel=error_reporting($errorlevel & ~E_DEPRECATED);
            

            这样我就不会意外关闭我需要的东西

            【讨论】:

            • 这样可以减少您的控制。您假设当前配置的任何内容都是正确的。最好根据需要直接设置,以免配置重叠。
            • 明白。每个案例都不一样。
            • 这仍然是最好的答案。它是唯一直接回答问题的:只禁用E_DEPRECATED,没有任何副作用。
            【解决方案9】:

            当您更改您的 php 版本时会出现此错误:抑制此错误消息非常简单

            要抑制 DEPRECATED 错误消息,只需将以下代码添加到您的 index.php 文件中:

            init_set('display_errors',False);

            【讨论】:

            • 不要这样做,这会隐藏所有错误消息,而不仅仅是折旧。
            猜你喜欢
            • 2013-10-28
            • 1970-01-01
            • 2012-07-24
            • 1970-01-01
            • 2011-09-06
            • 1970-01-01
            • 2014-12-03
            • 1970-01-01
            • 2013-01-28
            相关资源
            最近更新 更多