为了账号安全,请及时绑定邮箱和手机立即绑定

为什么类可以用->一次性调用多个方法

为什么类可以用->一次性调用多个方法

PHP
慕莱坞森 2019-03-15 20:40:25
比如tp框架M('table')->where()->limit()->find(); 下面这么写为什么会报错 <?php /** * */ class bb { public function fc1(){ } public function fc2(){ } public function fc3(){ } } $bb = new bb(); $bb->fc1()->fc2()->fc3();
查看完整描述

6 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

方法里返回当前对象。

<?php
class bb
{
    public function fc1(){
    
        return $this;
    }

    public function fc2(){
    
        return $this;
    }
    
    public function fc3(){
    
        return $this;
    }
}

$bb = new bb();
$bb->fc1()->fc2()->fc3();
查看完整回答
反对 回复 2019-03-18
?
撒科打诨

TA贡献1934条经验 获得超2个赞

这个叫做 链式调用 每个方法直接返回this是最常见的方式。

查看完整回答
反对 回复 2019-03-18
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

一种编程风格叫链式编程,原理就是调用的属性或者方法的返回值是调用者本身。具体可以google下。

查看完整回答
反对 回复 2019-03-18
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

这个链式调用风格。通常在函数中实现某个方法后,返回当前对象.

public function fn1(){
    //dosomething
    return $this;
}

由于函数返回的是当前的对象,因此有可以调用其他方法。

查看完整回答
反对 回复 2019-03-18
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

有箭头 说明它是个对象 方法里要返回对象才能使用箭头

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 465 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信