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

是否可以像这样在单个对象中调用多个方法?

是否可以像这样在单个对象中调用多个方法?

PHP
子衿沉夜 2022-12-23 15:38:49
我尝试在单个对象上调用多个函数。但我得到了这个错误未捕获的错误:调用成员函数 dordor()你能纠正我吗?<?phpclass Das{    public $a= 'mulut';    public $b = 'anda';    public $c = 'kotor';    public function dor(){        echo $this->a.PHP_EOL;        echo $this->b.PHP_EOL;        echo $this->c.PHP_EOL;        echo PHP_EOL;    }    public function dordor(){        echo 'lmao';        echo PHP_EOL;    }}$s = new Das();$s->a = 'mulut';$s->b = 'anda';$s->c = 'kotor';$s->dor()->dordor();?>
查看完整描述

2 回答

?
慕沐林林

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

如果我对您的理解正确的话,您想要实现的通常称为“链接”。


要实现这一点,您必须在方法结束时返回对象本身,即“this”。


我已经相应地调整了你的代码


    <?php


class Das

{

    public $a= 'mulut';

    public $b = 'anda';

    public $c = 'kotor';


    public function dor(){

        echo $this->a.PHP_EOL;

        echo $this->b.PHP_EOL;

        echo $this->c.PHP_EOL;

        echo PHP_EOL;

        return $this;

    }


    public function dordor(){

        echo 'lmao';

        echo PHP_EOL;

        return $this;

    }

}


$s = new Das();

$s->a = 'mulut';

$s->b = 'anda';

$s->c = 'kotor';

$s

->dor()

->dordor();


?>


查看完整回答
反对 回复 2022-12-23
?
Qyouu

TA贡献1786条经验 获得超11个赞

您正在将方法用作对象。$s->dor()->dordor(); 但是 dor() 不是一个对象,它是一个方法。你必须$this->dordor();在你的 dor() 方法代码的末尾添加它是调用 dordor() 方法与你调用 dor() 方法的相同对象。这个:


<?php


class Das

{

    public $a= 'mulut';

    public $b = 'anda';

    public $c = 'kotor';


    public function dor(){

        echo $this->a.PHP_EOL;

        echo $this->b.PHP_EOL;

        echo $this->c.PHP_EOL;

        echo PHP_EOL;

        $this->dordor();

    }


    public function dordor(){

        echo 'lmao';

        echo PHP_EOL;

    }

}


$s = new Das();

$s->a = 'mulut';

$s->b = 'anda';

$s->c = 'kotor';

$s->dor();


?>


查看完整回答
反对 回复 2022-12-23
  • 2 回答
  • 0 关注
  • 84 浏览

添加回答

举报

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