我对PHP中的OOPS感到困惑。我想在php中理解set get方法。 这里简单的zend框架模块,我正在寻找
https://github.com/blanchonvincent/SimplePageCrawler
public function getHeadingTags()
{
if(null === $this->headingTags) {
$this->setHeadingTags(new ArrayObject()); // here called but empty array passed
}
return $this->headingTags;
}
public function setHeadingTags($headingTags)
{
if(is_array($headingTags)) {
$this->getHeadingTags()->exchangeArray($headingTags);
return $this;
}
if(!$headingTags instanceof ArrayObject) {
throw new Exception\InvalidArgumentException('Heading tags must be an array or an ArrayObject');
}
$this->headingTags = $headingTags;
return $this;
}
$crawler = $this->getServiceLocator()->get('SimplePageCrawler');
$page = $crawler->get('http://cnn.com');
print_r($page->getHeadingTags()); // this method return results very well
但我试图理解,它如何在不调用setHeadingTags方法的情况下返回结果。可能是它的名字auto。
请帮助我理解。怎么称呼 谢谢答案 0 :(得分:0)
setHeadingTags
纯粹是响应类的setter。在getter中,如果它为空,则会在其中放置ArrayObject
。如果您愿意,这为开发人员提供了使用setter将项目放在标题中的选项,如果没有,那么在调用getHeadingTags
时将为您填充。
您的问题的答案:除了尝试获取标记之外,它不会自动或永远调用,此时检查它是否为空,如果填充空对象,则返回空对象。例如,如果您希望添加特定的标题标记,则可以使用所需的值从代码中调用它,此时getter会注意到它不是null并返回标题标记。