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


Function in other function which add extra mysql query

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

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没有定义,所以你在 Query::add() 方法中的if检查不会返回任何内容。因此,$add null,因此不会调用最后一个$query->where()

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