我需要重载die()函数。例如,我想将一个额外的参数传递给die()函数,当设置为true时,它会向我发送一封电子邮件,告知该网站发生了异常。 你能帮帮我!!!
感谢所有......
答案 0 :(得分:4)
PHP不允许这样做。只需使用自己的功能:
<?php
function ddie($email=false){
if ($email) doemail();
die();
}
?>
答案 1 :(得分:4)
大家好......我需要重载die()函数。
不,你没有。
您可以使用set_error_handler
或register_shutdown_function
在PHP错误上运行一些代码。
我会将它作为练习留给读者查看文档和实验,看看这些函数将被触发的关闭场景。
答案 2 :(得分:3)
你不能重载内置函数,但你可以写一个包装器:
function die_with_grace($message, $send_email=false) {
if ($send_email) {
// send email here
}
die($message);
}
mysql_query('...') or die_with_grace('Error in query', true);
答案 3 :(得分:2)
你不想这样做。 die()
不是错误处理程序。它只是退出脚本。您可能正在寻找的是
示例:强>
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
error_log('DB troubles', 1, 'admin@example.com');
die;
}
结合使用
答案 4 :(得分:1)
即使die()
和exit()
看起来像函数,它们实际上只是PHP称为“语言结构”的内置功能。因此,即使有一种简单的方法来覆盖函数,它也行不通。 ( 可以通过第三方扩展替换功能,但这不是你真正想要的东西。)
您可能需要查看trigger_error()或使用例外(例如throw new EmailException()
)。这两个都可能被困,并可选择用于发送电子邮件。
答案 5 :(得分:0)
为什么不创建自己的自定义die();功能?只需创建custom_die();并让它发送电子邮件然后死();。
请注意,由于简单的服务器打嗝,您可能偶尔会遇到大量电子邮件。