在php中的一个对象中使用muliple方法
我对我的项目的php和crating类还不熟悉。我已经到了这一步在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(); 我尝试过搜索,但没有得到我应该搜索的内容 这是我
$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,你应该提出另一个问题。