我正在学习php对象,但是我对这段代码的结果感到困惑。调用mail
函数时,所有对象属性均按预期方式传递,并且没有错误。调用MakeCommuni
函数时,将传递前三个属性,而后两个属性与上一个函数具有相同的对象属性,则会产生以下错误:
注意:未定义的属性:第45行... / public_html / i_sendEmail.php中的obj_em_OrPS :: $ getToAdd
$objASstr = file_get_contents($usFile);
$objEM = unserialize($objASstr);
$mResult = 'Uh-Oh... test test.';
if (mail($objEM->getToAdd(),$objEM->getSubject(),$objEM->getBody(),$objEM->getHeader())){
$mResult = 'eMail has been sent.';
$mResul2 = MakeCommuni($mOrderID, date("Y-m-d H:m:s"), 'email',$objEM->getToAdd,$objEM->getSubject);
}
else {
$mResult = 'Uh-Oh... NO! NO! eMail has NOT been sent.';
}
(顺便说一句,MakeCommuni()是一个自定义函数,在其他地方不会出现错误)
感谢您的帮助。
答案 0 :(得分:1)
您在函数调用中缺少括号,因此PHP假定正在调用对象属性:
$mResul2 = MakeCommuni($mOrderID, date("Y-m-d H:m:s"), 'email',$objEM->getToAdd,$objEM->getSubject);
应该是:
$mResul2 = MakeCommuni($mOrderID, date("Y-m-d H:m:s"), 'email',$objEM->getToAdd(), $objEM->getSubject());