Turn off deprecated errors php 5.3

2019-01-13 07:06发布

问题:

My server is running php 5.3 and My wordpress install is spitting these errors out on me causing the my session_start() to break.

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

This is annoying, but I do not want to turn off on screen error reporting. How do I disable these bothersome deprecated warnings?

I am running Wordpress 2.9.2.

回答1:

You can do it in code by calling the following functions.

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

or

error_reporting(E_ALL ^ E_DEPRECATED);


回答2:

I needed to adapt this to

error_reporting = E_ALL & ~E_DEPRECATED


回答3:

To only get errors those cause application to stop working use:

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

This will stop showing notice, warning and deprecated errors.



回答4:

All the answers above are correct. Since no one have hinted out how to turn off all errors in php, I would like to mention it here :

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

Somebody might find it useful......



回答5:

I just faced a similar problem where a SEO plugin issued a big number of warnings making my blog disk use exceed the plan limit.

I found out that you must include the error_reporting command after the wp-settings.php require in the wp-config.php file:

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

by doing this no more warnings, notices nor deprecated lines are appended to your error log file!

Tested on WordPress 3.8 but I guess it works for every installation.



回答6:

In file wp-config.php you can find constant WP_DEBUG, make sure it is set to false.

define('WP_DEBUG', false);

This is for wordpress 3.x



回答7:

You have to edit the php configuration file. Fin the line

error_reporting = E_ALL

and replace with error_reporting = E_ALL ^ E_DEPRECATED

If you don't have access to the configuration file you can add this line to the php wordpress file (maybe headers.php)

error_reporting(E_ALL ^ E_DEPRECATED); 


回答8:

I tend to use this method

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

In this way I do not turn off accidentally something I need



回答9:

Just replace below code in wp-config.php file

define( 'WP_DEBUG', true ); to define( 'WP_DEBUG', true );



回答10:

this error occur when you change your php version: it's very simple to suppress this error message

To suppress the DEPRECATED Error message, just add below code into your index.php file:

init_set('display_errors',False);