在php中的一个对象中使用多个方法

时间:2014-01-18 08:15:08

标签: php class object method-chaining

我是php和crating课程的新手。我到目前为止......

$db->select('id');
             $db->from('name');
             $db->where("idnum<:num");
             $db->bindparamers(':num',100);
             $rows=$db->executeQuery();

我知道创建方法,以便我可以像下面一样使用所有东西

$db->select('id')->from('name')->where('idnum>100')->executeQuery();

我尝试过搜索,但没有得到我应该搜索的内容

这是我的班级结构

class Dbconnections
{
    //For Complex Queries
    public function select($items)
    {

    }
    public  function from($tablenames)
    {

    }
    public function where($arr)
    {

    }
    public function orderby($order)
    {

    }
    public function bindparamers($parameter,$value)
    {

    }
    public function executeQuery()
    {}


}

我需要进行哪些更改才能将其用作:

$db->select('id')->from('name')->where('idnum>100')->executeQuery();

1 个答案:

答案 0 :(得分:4)

它被称为方法链接,在您的情况下,可以通过从每个方法返回$this来实现。

class Dbconnections 
{
    public function select($items)
    {
        // ...
        return $this;
    }
    public  function from($tablenames)
    {
        // ...
        return $this;
    }
    public function where($arr)
    {
        // ...
        return $this;
    }
    public function orderby($order)
    {
        // ...
        return $this;
    }
    public function bindparamers($parameter,$value)
    {
        // ...
        return $this;
    }
    public function executeQuery()
    {
        // ...
        return $this;
    }
}