注意虽然你们中的一些人似乎有不同的看法,但这并不是PHP: PEAR mail message error的重复。这个问题询问如何压制严格的通知,我毫不费力。在我重新开启错误报告之后,我的问题与稍后的行为(我的代码末尾的最后error_reporting
调用)有关。
我正在发送带有php的pear邮件扩展名的邮件。为了避免在调用其函数时引发的严格通知,我在使用它时关闭了严格的错误报告。但是,在我重新开启严格错误报告后,会报告已避免的通知。
以下是代码:
<?php
include_once "Mail.php"; /*from pear.php.net*/
error_reporting(E_ERROR);
$from = "some@emailaddress";
$to = "another@emailaddress";
$subject = "test email";
$body = "body of email";
$headers = array (
"From" => $from,
"To" => $to,
"Subject" => $subject);
$smtp = Mail::factory("smtp",
array (
"host" => "badhost",
"port" => "badport",
"auth" => true,
"username" => "baduser",
"password" => "badpw"));
$mail = $smtp->send($to, $headers, $body);
/*if this line is commented out "goodbye" is all that is returned.
if it is left in, the return is "goodbye" followed by three "strict standards"
notices*/
error_reporting(E_ALL);
die("goodbye");
?>
这比其他任何事情都更加恶化。也许Pear的破坏方法正在提出通知。
如果能够重新打开完整的错误报告,有关如何使它们不显示的任何想法?
类似的通知提出三次:
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ this来自C:\ wamp \ bin \ php \ php5.4.3 \ pear \ Net \ SMTP.php中的不兼容上下文第491行