PHP set_error_handler() º¯Êý

ʵÀý

ͨ¹ý set_error_handler() º¯ÊýÉèÖÃÓû§×Ô¶¨ÒåµÄ´íÎó´¦Àí³ÌÐò£¬È»ºó´¥·¢´íÎó£¨Í¨¹ý trigger_error()£©:

<?php
 // Óû§¶¨ÒåµÄ´íÎó´¦Àíº¯Êý
 function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "<b>Custom error:</b> [$errno] $errstr<br>";
     echo " Error on line $errline in $errfile<br>";
 }

 // ÉèÖÃÓû§¶¨ÒåµÄ´íÎó´¦Àíº¯Êý
 set_error_handler("myErrorHandler");

 $test=2;

 // ´¥·¢´íÎó
 if ($test>1) {
     trigger_error("A custom error has been triggered");
 }
 ?> 

ÒÔÉÏ´úÂëµÄÊä³öÀàËÆÕâÑù£º

Custom error: [1024] A custom error has been triggered
 Error on line 14 in C:\webfolder\test.php

¶¨ÒåºÍÓ÷¨

set_error_handler() º¯ÊýÉèÖÃÓû§¶¨ÒåµÄ´íÎó´¦Àíº¯Êý¡£

×¢ÊÍ£ºÈç¹ûʹÓøú¯Êý£¬»áÈÆ¹ý±ê×¼ PHP ´íÎó´¦Àí³ÌÐò£¬Í¬Ê±Èç¹û±ØÒª£¬Óû§¶¨Òå´íÎó³ÌÐòͨ¹ý die() ÖÕÖ¹½Å±¾¡£

×¢ÊÍ£ºÈç¹û´íÎó·¢ÉúÔڽű¾Ö´ÐÐ֮ǰ£¨±ÈÈçÎļþÉÏ´«Ê±£©£¬½«²»»áµ÷ÓÃ×Ô¶¨ÒåµÄ´íÎó´¦Àí³ÌÐòÒòΪËüÉÐδÔÚÄÇʱע²á¡£

Óï·¨

set_error_handler(errorhandler,E_ALL|E_STRICT);
²ÎÊý ÃèÊö
errorhandler ±ØÐè¡£¹æ¶¨Óû§´íÎó´¦Àíº¯ÊýµÄÃû³Æ¡£
E_ALL|E_STRICT ¿ÉÑ¡¡£¹æ¶¨ÏÔʾºÎÖÖ´íÎ󱨸漶±ðµÄÓû§¶¨Òå´íÎó¡£Ä¬ÈÏÊÇ "E_ALL"¡£

¼¼Êõϸ½Ú

·µ»ØÖµ£º °üº¬Ö®Ç°¶¨ÒåµÄ´íÎó´¦Àí³ÌÐòµÄ×Ö·û´®¡£
PHP °æ±¾£º 4.0.1+
PHP ¸üÐÂÈÕÖ¾£º

PHP 5.5£º²ÎÊý errorhandler ÏÖÔÚ½ÓÊÜ NULL

PHP 5.2: ´íÎó´¦Àí³ÌÐò±ØÐë·µ»Ø FALSE À´ÏÔʾ $php_errormsg¡£

VUE