注意虽然你们中的一些人似乎有不同的想法,但这不是PHP: PEAR mail message error的重复。那个问题是问如何压制严格的通知,我可以毫不费力地做到这一点。我的问题与我重新打开错误报告后稍后的行为(error_reporting
代码末尾的最终调用)有关。
我正在发送带有 php 的梨邮件扩展名的邮件。为了避免在调用它的函数时引发严格的通知,我在使用它时关闭了严格的错误报告。但是,在我重新打开严格的错误报告后,会报告被避免的通知。
这是代码:
<?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 行