Sometimes your PHP application might produce different types of earnings and errors or sometimes you might see a blank page and not understand if you are getting an error or not. In this article, we will discuss all PHP errors, warnings, and how you can turn these errors on/off. So if you are having problems with your PHP application and need to display all the errors and warnings, you are in the right place, we will also discuss how to event collect them when your site is now online. Display all PHP errors ini_set('display_errors', 1); error_reporting(E_ALL); Now, let’s explain what these lines mean in plain text ini_set function The function allows you to override the configuration found in your PHP.ini file. The option will determine if the errors will be displayed or hidden. It’s important that this error mode be turned off during production. ini_set display_errors So how can you use this? If you want to display errors you simply pass a value 1 and to hide errors, pass a value 0. ini_set('display_errors', 1); //display errors ini_set('display_errors', 0); //hide errors Note: Using this won't be able to display parse errors such as missing semicolons or missing curly braces. In this case, you have modifiy your PHP ini configuration Setting up your PHP.ini to display errors If you can’t see errors after using the to display errors, don’t worry you can still do that by going to your PHP.ini file ini_set How to locate your PHP.ini file If you are using xampp, you can find your PHP.ini file with these steps. Open the directory where you install your xampp. Look for a folder called PHP In the PHP folder, you can scroll down or use the search option to locate the php.ini file. Turn on display errors in the PHP.ini file If you have successfully located the PHP.ini file bravo, all we have to do is to open the file with a text editor and search for then we change its value to . display_errors on display_errors = on : After we have made a change on the php.ini file and saved the file, we must restart our server. Note Display PHP Errors via .htaccess Configuration You can also enable or disable error mode using the .htaccess file located in the root or public directory of the project php_flag display_startup_errors on php_flag display_errors on This is the same as what you add to the PHP code to show PHP errors. Depending on which files you have access to and how you do deployments and server configurations, you may want to configure display_erros in .htaccess or your PHP.ini file. Many hosting providers will not allow you to modify your file to enable PHP.ini display_errors. In the .htaccess file, a custom error log can also be enabled as long as the log folder or the log file is writable by the web server. The log file can be a relative path to where the .htaccess is located, or it can be an absolute path such as /var/www/html/website/public/logs php_value error_log logs/all_errors.log PHP Warnings and Notices Most times, the warnings don’t affect our application but will cause some fatal errors in certain conditions. So these errors must be fixed because this means that the application won’t run normally under certain scenarios. In case these warnings cause a lot of errors, then it would be more practical to hide the errors and just show the warning messages. error_reporting(E_WARNING); Hiding and showing a warning is just as simple as adding a single line of code. To show warnings and notices, the parameter for the error reporting function will be | . E_WARNING E_NOTICE The error_reporting function can also accept E_ERROR and E_PARSE parameters as bitwise operators. To report all errors except for notices, then the parameter is & ~ where stands for all possible parameters of the error reporting function.\ E_ALL E_NOTICE E_ALL error_reporting(0); To remove all errors, warnings, and parse message notices, the parameter that should be passed to the error_reporting function is zero (0). It would be not practical to have this line of code in each of the PHP files. it would be better to turn off report messages in the PHP ini file or in the .htaccess. error_reporting(E_NOTICE); PHP allows variables to be used even when not declared. This is not standard practice because undeclared variables will cause issues for the application once it is used in loops and conditions. Sometimes this also happens because the declared variable has a different spelling than the variable being used for conditions or loops. When E_NOTICE is passed in the error_reporting function, then these undeclared variables will be displayed in the web application. error_reporting(E_ALL & ~E_NOTICE); The error reporting function allows you to filter which errors can be shown. The “~” character means “note” so the parameter ~E_NOTICE means not to show notices. Notice the “&” and “|” characters in between the possible parameters. The “&” character is for “true for all”, while the “ ” character represents either one as long as it is true. These two characters have the same meaning in PHP conditions OR and AND. | Hope this helps you understand how to handle PHP warnings and errors, if you find anything which is not clear you can leave a comment below. Thanks! Also published here.