>백엔드 개발 >PHP 튜토리얼 >这句话如何理解呢

这句话如何理解呢

WBOY
WBOY원래의
2016-06-23 13:45:17864검색

Model('seo')->type('index')->show();

最后翻译一下


回复讨论(解决方案)

Model('seo')  得到一个 seo 对象
->type('index') 执行 seo 对象的 type 方法
->show();  执行 seo 对象的 show 方法

Model('seo')  得到一个 seo 对象
->type('index') 执行 seo 对象的 type 方法
->show();  执行 seo 对象的 show 方法



我的疑惑是,为啥用两个箭头呢,那样符合语法规范吗,因为我的理解   Model('seo')->type('index')
它是对象实例化后调用的一个方法,而它后面又再调用一个方法,但是 Model('seo')->type('index')
它此时可不是对象啊,怎么能行呢

如果能连续用箭头的话,那么一个类中有很多方法,是不是说,能用一长串箭头调用的写法呢


Model('seo')  得到一个 seo 对象
->type('index') 执行 seo 对象的 type 方法
->show();  执行 seo 对象的 show 方法



我的疑惑是,为啥用两个箭头呢,那样符合语法规范吗,因为我的理解   Model('seo')->type('index')
它是对象实例化后调用的一个方法,而它后面又再调用一个方法,但是 Model('seo')->type('index')
它此时可不是对象啊,怎么能行呢

调用的方法 返回 $this 即可这样级联

class  Orange{    public function a(){        echo "a";        return $this;    }    public function b(){        echo "b";        return $this;    }    public function c(){        echo "c";        return $this;    }}$orange = new Orange();$orange->a()->c()->b();


acb

只要这些函数(方法)返回的是对象,就可以用这种连续操作的写法

但是Model('seo')->type('index') 它此时可不是对象啊
你怎么知道他不是对象?

突然明白了!原来javascript中的连缀就是用的这个原理。

突然明白了!原来javascript中的连缀就是用的这个原理。


只不过javascript中用的是 点而不是 箭头罢 了
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.