我目前正在使用类似
的内容class User{
/* @var Contacts*/
public $contacts = array();
}
$userObj = new User();
$userObj->contacts[] = new Contact(...);
$userObj->contacts[] = new Contact(...);
我们可以使用phpDocumentor记录变量的类型,是否也可以限制其他类型的对象分配给contacts数组
$userObj->contacts[] = 2.3 //should be considered as invalid
答案 0 :(得分:2)
将$contacts
声明为私有,并使用getter和setter方法。
Class User{
private $contacts = array();
function addContact($contact) {
if (is_object($contact) && get_class($contact) == "Contact") {
$this->contacts[] = $contact;
} else {
return false;
// or throw new Exception('Invalid Parameter');
}
}
function getContacts() {
return $this->contacts;
}
}
答案 1 :(得分:2)
不是它在php中的运作方式
以下是您可以做的事情
class User{
/* @var Contacts*/
private $contacts = array();
public function setContacts(Contact $contact){
$this->contacts[] = $contacts;
}
}
不,你可以这样使用它
$userObj = new User();
$userObj->setContacts(new Contact(...));
以下将导致错误
$userObj->setContacts(2.3);