函数是否一直被执行?

时间:2011-07-07 08:57:33

标签: php email

所以我在我的wordpress自定义主题中有一个函数,我正在使用我的所有形式。这个函数在我的wordpress functions.php中,看起来像:

function mail_utf8($to, $subject = '(No subject)', $message = '', $from , $header = '') {
  $header_ = "From: $from" . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
  mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}

所以问题是 - 当刷新页面上的某些功能时,此功能是否一直在执行?或者只有在我调用它时才执行该功能?

因为,我从宿主按摩中得到的结果是,我每小时都超过邮件限制。当我删除此功能并在每种形式中进行硬编码时,一切都很好。

我试过了:

if( !empty( $message ) ) {
 function mail_utf8($to, $subject = '(No subject)', $message = '', $from , $header = '') {
  $header_ = "From: $from" . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
  mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}
}

但它没有用

2 个答案:

答案 0 :(得分:1)

如果您没有操作码缓存,则每次有人加载页面时,此代码都将被解析(加载/包含包含此代码的文件)。

但是当有人打电话时,它只会被执行

注意:没有必要在$from之前指定默认参数,因为该字段是必填字段。

答案 1 :(得分:0)

只有在调用它时才会执行函数。调用函数看起来像some_fnc(arg1, arg2)

您向我们展示的是功能声明。要实际调用它,应该写mail_utf8('some@email.com')。在代码中查找,如果需要,请使用\\符号注释掉。

你实际上做了什么现在可能会导致致命错误:当某些事情试图调用mail_utf8()而没有$message时,将不会声明设置函数,并且脚本将退出并显示错误:

PHP Fatal error:  Call to undefined function mail_utf8()