Php 添加额外mysql查询的其他函数中的函数

Php 添加额外mysql查询的其他函数中的函数,php,Php,这是一个如何添加额外查询条件的类,但它不起作用。我的问题是,这是否可以做到,如果可以,如何做到 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'); } } }

这是一个如何添加额外查询条件的类,但它不起作用。我的问题是,这是否可以做到,如果可以,如何做到

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();
试试这个

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();
您的方法Query::Query()包含以下代码行:


$add=$this->add($y);

但是$y没有定义,因此您的
if
签入Query::add()方法不会返回任何内容。因此,$add是
null
,因此不会调用最后一个
$query->where()


如果需要在各种实例方法调用中保留值,请将值存储在实例变量上,或将其作为方法参数传递。

请解释什么不起作用,最好提供准确的脚本输出。另外,您的类方法缺少可见性声明,您应该了解这些声明。不调用额外的查询,然后我使用此函数
$items->add('y')