这是我想象的添加额外查询条件的一类,但它不起作用。我的问题是,如果可以做到这一点,如果是的话 - 怎么做?
class query
{
function add($y)
{
if($y) { return 'y'; }
}
function query()
{
$query->select('*');
$query->from('table');
$add = $this->add($y);
if($add) { $query->where('smt = smt'); }
}
}
通话类:
$items = new Query;
$items->add('y');
$items->query();
答案 0 :(得分:1)
试试这个......
class query {
private $y = null;
function $add($y=null) {
if($y!=null)
$this->y = $y;
return $this->y;
}
function query()
{
$query->select('*');
$query->from('table');
$add = $this->add();
if($add) { $query->where('smt = smt'); }
}
}
通话类:
$items = new Query;
$items->add('y');
$items->query();
答案 1 :(得分:1)
您的方法Query :: query()包含以下代码行:
$add = $this->add($y);
但$ y未定义,因此在Query :: add()方法中检查if
不会返回任何内容。因此,$ add为null
,因此不会调用最后一个$query->where()
。
如果需要在各种实例方法调用中保留值,请将值存储在实例变量中,或者将它们作为方法参数传递。