我有以下代码,当我把它放在任何空白的PHP页面时,但当我尝试将代码放在另一个PHP页面,我已经有一些代码,我得到错误:
ERRNO: 8192 TEXT: Assigning the return value of new by reference is deprecated LOCATION: C:\xampp\php\PEAR\Mail.php, line 154,
include('Mail.php');
$mail = Mail::factory("mail");
$headers = array("From"=>"xyz@gmail.com", "Subject"=>"Your order has been placed ");
$body = "lol";
$mail->send("abc@live.com", $headers, $body);
答案 0 :(得分:1)
您可能有旧版本的PEAR :: Mail。可能是版本1.1.14,是当前稳定版本1.2.0之前的最后一个稳定版本。
尝试
pear channel-update pear.php.net
pear upgrade Mail
获取最新版本。
编辑:这实际上不是答案的一部分,但也不适合评论:
出于调试目的,用
替换pear / Mail.php中的工厂函数function &factory($driver, $params = array())
{
$driver = strtolower($driver);
echo '<pre>Debug: driver=', $driver, "</pre>\n";
echo '<pre>Debug: include_path=', get_include_path(), "</pre>\n";
echo '<pre>Debug: cwd=', getcwd(), "</pre>\n";
echo '<pre>Debug: __FILE__=', __FILE__, "</pre>\n";
require_once 'Mail/' . $driver . '.php';
$class = 'Mail_' . $driver;
if (class_exists($class)) {
$mailer = new $class($params);
return $mailer;
}
else {
throw new Exception('Unable to find class for driver ' . $driver);
}
}