2014-02-12 110 views
0

我有一个名为Mail中的PHP类和其他类我要做到以下几点:对象属性不被识别为一个数组

if (is_array ($mail->getToAddresses())) { 
     foreach ($mail->getToAddresses() as $address) { 
      $mailer->addAddress ($address); 
     } 
} 

但如果条件不匹配。它从来没有进入foreach代码... 我如何表明该属性是一个真正的数组? 任何想法?

邮件类:

class Mail { 

private $from; 
private $fromName; 
private $subject; 
private $toAddresses; 
private $ccAddresses; 
private $bccAddresses; 
private $message; 

public function __construct() { 
    $this->toAddresses = array(); 
    $this->ccAddresses = array(); 
    $this->bccAddresses = array(); 
} 

public function addToAddress($toAddress) { 
    $this->toAddresses = $toAddress; 
} 

public function addCcAddress($ccAddress) { 
    $this->ccAddresses = $ccAddress; 
} 

public function addBccAddress($bccAddress) { 
    $this->bccAddresses = $bccAddress; 
} 

public function getFrom() { 
    return $this->from; 
} 

public function setFrom($from) { 
    $this->from = $from; 
} 

public function getFromName() { 
    return $this->fromName; 
} 

public function setFromName($fromName) { 
    $this->fromName = $fromName; 
} 

public function getSubject() { 
    return $this->subject; 
} 

public function setSubject($subject) { 
    $this->subject = $subject; 
} 

public function getToAddresses() { 
    return $this->toAddresses; 
} 

public function setToAddresses($toAddresses) { 
    $this->toAddresses = $toAddresses; 
} 

public function getCcAddresses() { 
    return $this->ccAddresses; 
} 

public function setCcAddresses($ccAddresses) { 
    $this->ccAddresses = $ccAddresses; 
} 

public function getBccAddresses() { 
    return $this->bccAddresses; 
} 

public function setBccAddresses($bccAddresses) { 
    $this->bccAddresses = $bccAddresses; 
} 

public function getMessage() { 
    return $this->message; 
} 

public function setMessage($message) { 
    $this->message = $message; 
} 

public function __toString() { 
    return "from=" . $this->from . ", fromName=" . $this->fromName . ", subject=" . $this->subject . ", message=" . $this->message; 
} 
+0

显示你的对象的实例化完整的代码,请 –

+0

你确定'$ mail-> getToAddresses()'返回一个数组...只是打印 –

+0

@SherinJose它不打印数组。有任何理想为什么? – nmartins

回答

1

addToAddress()方法覆盖toAddresses属性(因此使其成为一个字符串)。我相信你想添加到toAddresses阵中还有代替:

public function addToAddress($toAddress) { 
    $this->toAddresses[] = $toAddress; 
} 

而且,你可能要一个类型提示添加到setToAddresses()二传手,所以它不接受非阵列:

public function setToAddresses(array $toAddresses) { 
    $this->toAddresses = $toAddresses; 
} 
+0

谢谢。你是对的。我忘记了:) – nmartins

相关问题