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

在php中的一个对象中使用muliple方法,php,class,object,method-chaining,Php,Class,Object,Method Chaining,我对我的项目的php和crating类还不熟悉。我已经到了这一步 $db->select('id'); $db->from('name'); $db->where("idnum<:num"); $db->bindparamers(':num',100); $rows=$db->executeQuery(); 我尝试过搜索,但没有得到我应该搜索的内容 这是我

我对我的项目的php和crating类还不熟悉。我已经到了这一步

$db->select('id');
             $db->from('name');
             $db->where("idnum<:num");
             $db->bindparamers(':num',100);
             $rows=$db->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();
这叫做方法链接,在您的例子中,可以通过从每个方法返回
$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;
    }
}
这叫做方法链接,在您的例子中,可以通过从每个方法返回
$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;
    }
}

你只需要在所有方法中
返回$this
方法链接就是你要找的方法你只需要在所有方法中
返回$this
方法链接就是你要找的方法它叫做fluent interface;)非常好,谢谢:)@Jeffrey你的解决方案非常好。但现在,我不想创建所有的方法作为我的链接方法,比如:我只想为select()链接两个方法,例如
$db->select()->from()->where()
,如果我正在进行更新,那么
$db->update()->set()->where()
像wise一样,我只需要确定我的全局链接、起始和集合将取决于选择和更新的位置,这有可能吗?@VikramSangat,你应该提出另一个问题。它被称为fluent interface;)非常好,谢谢:)@Jeffrey你的解决方案非常好。但现在,我不想创建所有的方法作为我的链接方法,比如:我只想为select()链接两个方法,例如
$db->select()->from()->where()
,如果我正在进行更新,那么
$db->update()->set()->where()
像wise一样,我只需要确定我的全局链G、from和set将取决于select和update,这有可能吗?@VikramSangat,你应该提出另一个问题。