PHP 5.3で廃止されたエラーをオフにする


127

サーバーで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は最新バージョンのワードプレスではありませんか?
Shadur

彼は古いワードプレスを備えた古いphpを気に入っているようです
Qchmqs

回答:


203

次の関数を呼び出すことにより、コードでそれを行うことができます。

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

または

error_reporting(E_ALL ^ E_DEPRECATED);

Robusに感謝します、これはphpエラー報告も殺しますか?
atwellpub

6
いいえ、最初の1つは基本的にphpにERROR / WARNING / PARSE / NOTICEエラーを表示するように指示し、2つ目はphpに非推奨のエラー以外をすべて表示するよう指示します。
Robus

1
UbuntuでのPHP 5.5.9の使用 "error_reporting = E_ALL&〜E_DEPRECATED&〜E_STRICT"影響はありませんが、私の例では "@mysql_connect();"です。トリックを行う:-(
molokoloco

@molokoloco二度間違えました。最初にあなたは物事を修正しませんでした。あなたはそれを黙らせた。第二に、あなたはまだmysql非推奨であるを使用しています。少なくとも切り替える必要がありますmysqli
Marcin Orlowski

動作しません。どこかで上書きされていませんか?これはどこに置くの?
アレックス

22

これを適応させる必要がありました

error_reporting = E_ALL & ~E_DEPRECATED

21

アプリケーションの動作を停止させるエラーのみを取得するには、以下を使用します。

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

これにより、通知、警告、非推奨のエラーが表示されなくなります。


13

以前のすべての答えは正しいです。PHPですべてのエラーをオフにする方法を示唆した人はいないので、ここで触れておきます。

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

誰かが便利だと思うかもしれません...


11

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でテスト済みですが、すべてのインストールで機能すると思います。


9

ファイル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ます。構成設定で編集することを目的としています。
Nilpo 2017年

4

私はこの方法を使う傾向があります

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

このようにして、私が必要なものを誤ってオフにすることはありません


1
それはあなたにあまり制御を与えません。現在構成されているものはすべて正しいと想定しています。設定が重複しないように、必要に応じて直接設定することをお勧めします。
Nilpo 2017年

理解する。すべてのケースが異なります。
realtebo

1
それでも、これが最良の答えです。それは質問に直接答える唯一のものです:副作用なしでE_DEPRECATEDを無効にするだけです。
シグモラル

-2

このエラーは、phpのバージョンを変更すると発生します。このエラーメッセージを抑制するのは非常に簡単です。

非推奨のエラーメッセージを抑制するには、以下のコードをindex.phpファイルに追加します。

init_set( 'display_errors'、False);


そうしないでください。減価償却だけでなく、すべてのエラーメッセージが非表示になります。
tanaydin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.