扩展类功能,如codeigniter

时间:2018-07-14 13:29:59

标签: php

如果您使用codeigniter(也许也使用其他框架),则可以使用类似的东西

$this->db->query()->row();

现在,我想创建类似的东西。现在,我有这个简单的课程

class Users
{
    function getUser(){

    }
}

所以,当我尝试以上课程时,我可以使用它

<?php
require 'Users.php';
$users= new Users();
$users->getUser();

但是,我想要的是。我可以在函数中添加order。所以maybe我可以这样创建

<?php
require 'Users.php';
$users= new Users();
$users->getUser()->orderby("fullname","asc");

我该如何实现?预先感谢

1 个答案:

答案 0 :(得分:0)

这称为方法链接。为了使它起作用,每个方法都返回一个对象,该对象可以是同一对象。

示例:

class Users
{
    function getUser(){
        return new User();
    }
}

如果您使用:

<?php
require 'Users.php';
$users= new Users();
$users->getUser()->orderby("fullname","asc");

getUser将在Users上被调用,而orderby将被在User上被调用。