注意違う考えの方もいらっしゃると思いますが、これは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 の destruct メソッドが注意を喚起しているのでしょう。
完全なエラー報告をオンに戻すことができる一方で、それらを表示しないようにする方法についてのアイデアはありますか?
これと同様の通知が 3 回表示されます。
厳格な基準: 非静的メソッド PEAR::isError() を静的に呼び出すべきではありません。$this が C:\wamp\bin\php\php5.4.3\pear\Net\SMTP.php 行 491 の互換性のないコンテキストからのものであると仮定します。