PHP强制对象类型之instanceof操作符
attributes=array(),$data){ parent::__construct($attributes); $this->data=$data; } //''getHTML()''方法的具体实现 public function getHTML(){ foreach($this->attributes as $attribute=>$value){ $this->output.=$attribute.''="''.$value.''" ''; } $this->output=substr_replace($this->output,''>'',-1); $this->output.=$this->data.''</p>''; return $this->output; } } //定义具体类''UnorderedList''-扩展HTMLElement class UnorderedList extends HTMLElement{ private $output=''<ul ''; private $items=array(); public function __construct($attributes=array(),$items=array()){ parent::__construct($attributes); if(!is_array($items)){ throw new Exception(''Invalid parameter for list items''); } $this->items=$items; } //''getHTML()''方法的具体实现 public function getHTML(){ foreach($this->attributes as $attribute=>$value){ $this->output.=$attribute.''="''.$value.''" ''; } $this->output=substr_replace($this->output,''>'',-1); foreach($this->items as $item){ $this->output.=''<li>''.$item.''</li>''; } $this->output.=''</ul>''; return $this->output; } } 如你所见,上面的(X)HTML widget类在生成一个网面中特定的元素时是非常有用的,但是我有意地把每一个类的代码写成这样,这样它们就不能够验证输入参数的有效性。你可能已经想到,输入参数将直接被传递到类构造器中并且作为属性赋值。问题出现了:这样做有什么错误吗?是的,有。现在,我将定义我的最简单的页面生成器类,并且用这样一些widget来填充(feed)它,这样你就可以看到这个类的输入是如何与不正确的对象相混杂。下面是该页面生成器类的签名: class PageGenerator{ 现在,我们开始实例化一些(X)HTML widget对象,并且把它们传递到相应的生成器类,如下面的示例所示: try{ |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |