2016-01-11 3 views
1

Как я могу сделать многофункциональную переменную из класса? Я попытался это, но я получаю сообщение об ошибке Фатальная ошибка: Вызов функции-члена doSomethingElse()PHP создать объект класса

У меня есть класс, например

class users { 

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

Я хочу, чтобы иметь возможность вызвать 2 функции в один звонок

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

Что называется? и как мне это получить?

+0

Верните свой объект в функцию ('return $ this'). – Script47

+1

Возможный дубликат [цепочка PHP-метода?] (Http://stackoverflow.com/questions/3724112/php-method-chaining) – Script47

ответ

1

Это просто , то первый метод должен вернуть собственный экземпляр, чтобы сделать что вам нужно вернуть $ это в первом способе, как это:

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

, чем вы можете сделать это:

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

Я не могу ответить на 100% уверенности, но дать этому выстрел (возможно, вам нужно вернуть что-то в этих функциях, возможно, функция конструктора, а также увидеть здесь?): how to call two method with single line in php?

0

Отделите пользователей и пользователей

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

class user{ 
    public function doSomethingElse(){} 
} 

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

если вы сделаете GetUser статический вы можете даже ударить линию, где вы создаете экземпляр класса пользователей

я не пошел бы за это столько, сколько я могу в одной строке. Борьба за удобочитаемость!

0

Кажется, что вы ищете цепочку. Вы должны вернуть свои объекты для достижения цели. Вот пример:

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

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

    $users = new Users(); 
    $user = $users->getUser()->doSomethingElse(); 
?> 
Смежные вопросы