请帮我讲一下OOP PHP

时间:2014-01-07 15:03:28

标签: php oop

我有班级用户。

class User {
    public function like($name) {
        // This code will return the variable $name
    }
    public function unlike($name) {
        // This code will return the variable $name
    }
}

如何像这样调用类用户

     User::like('Udin')->unlike('Asep');

3 个答案:

答案 0 :(得分:4)

这称为流利 API。你可以这样做:

class User {
    public function like($name) {
        // This code will return the variable $name
        return $this;
    }
    public function unlike($name) {
        // This code will return the variable $name
        return $this;
    }
}

$user = new User();
$user->like("John")->unlike("Mary");

使用静态调用(::代替->)可能不是一个好主意,因为您不再拥有$this。我不确定在这种情况下User会是什么样子。

答案 1 :(得分:0)

使用" ->"用于访问类实例的成员,而不是类方法。

答案 2 :(得分:0)

如果你真的想要,你可以这样做!但是很伤心哈哈。

如果您将工厂用作静态然后初始化User类,那就没关系了,但这是另一个故事,我相信很多用户都会抱怨

   class User {

        public static function like($name) {
            echo $name.'<br/>';
            return new User();
        }

        public function unlike($name) {
            echo $name.'<br/>';;
        }
    }

    User::like('foo')->unlike('teste');

class User { public static function like($name) { echo $name.'<br/>'; return new User(); } public function unlike($name) { echo $name.'<br/>';; } } User::like('foo')->unlike('teste');