php – 流体接口如何返回$this和值?
发布时间:2020-12-13 16:50:37 所属栏目:PHP教程 来源:网络整理
导读:我对OOP比较新,所以浏览Simple HTML DOM的文档我想知道它的方法如何使用方法链和返回值/对象的常规行为. 例如,我可以这样做: $html = new simple_html_dom(); $html - find('something'); // Returns object or array of objects 但我也可以这样做: $html
我对OOP比较新,所以浏览Simple
HTML DOM的文档我想知道它的方法如何使用方法链和返回值/对象的常规行为.
例如,我可以这样做: $html = new simple_html_dom(); $html -> find('something'); // Returns object or array of objects 但我也可以这样做: $html -> find('something') -> find('something_else'); 如果我理解方法链接正确,暗示find()返回$this,即本身. 另外我的理解是使用方法链接返回$this,之后你使用getter方法实际返回一个你可以使用/想要的值.
我在这里错过了什么? 解决方法
实际上,在find的返回值上调用find是没有意义的,因为返回值应该是一个数组.
你最终可以在find(string,array&)中添加第二个参数,这样你就可以: $result1 = []; $resilt2 = []; $html -> find('something',$result1) -> fint('something else',$result2); var_dump($result1,$result2); 用: public function find($search,& $output) { $output = ... return $this; } 取决于你的口味. 编辑: " $html -> find('div#results') -> find('li a'); " 您遇到了问题,因为$html表示DOM,而find返回的值不是DOM而是一组结果.您的find函数最终可以创建并返回一个较小的DOM,其中#result作为根(这将是与$html相同的类的对象,而不是数组),然后调用find将对该新根执行搜索文档的根,但看起来有点不直观. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |