PHP创建类对象

时间:2016-01-11 18:36:47

标签: php class object

如何从课堂上制作多功能变量? 我试过这个,但是我得到了错误 致命错误:调用成员函数doSomethingElse()

我有一个班级,例如

class users {

    public_funtion getUser(){}
    public_funtion doSomethingElse(){}
}

我希望能够在一次通话中调用2个功能

$users = new Users()
$user = $users->getUser()->doSomethingElse();

这叫什么?我怎么得到这个?

4 个答案:

答案 0 :(得分:1)

很简单,第一种方法必须返回自己的实例,为此你需要在第一种方法中返回$ this,如下所示:

class Users {
    public function getUser(){ return $this; }
    public function doSomethingElse(){ }
}

比你能做到的那样:

    $users = new Users()
    $user = $users->getUser()->doSomethingElse();

答案 1 :(得分:0)

我无法100%自信地回答,但请试一试(你可能需要在这些函数中返回一些东西,也许是构造函数以及在这里看到的?): how to call two method with single line in php?

答案 2 :(得分:0)

单独的用户和用户

class users {
    public function getUser(){
       bla();
       return $user; 
     }
    }

class user{
  public function doSomethingElse(){}
}

$users = new Users()
$user = $users->getUser()->doSomethingElse();

如果你使getUser变为静态,你甚至可以在创建类Users

的实例的位置

我不会在一行中尽我所能。争取可读性的斗争!

答案 3 :(得分:0)

好像你正在寻找链接。您需要返回对象才能实现目标。这是一个例子:

<?php
    class Users {
        public function getUser() {
            return $this;
        }

        public function doSomethingElse() {
            return $this;
        }
    }

    $users = new Users();
    $user = $users->getUser()->doSomethingElse();
?>