PHP模块-无法设置变量

PHP模块-无法设置变量,php,oop,variables,module,Php,Oop,Variables,Module,我对模块化编程相当陌生 在模块中设置变量时遇到问题,但仅在特定函数中设置 我已(移除无用的东西): 我在模块中有两个公共函数,它们做的事情都差不多,但是其中一个会用$this->setResultsFound(12)设置var,而另一个不会 public function sortSearchBar($categoryID, $brandID, $sort = false, $limit = false, $search = false){ foreach ($this->sort

我对模块化编程相当陌生

在模块中设置变量时遇到问题,但仅在特定函数中设置

我已(移除无用的东西):

我在模块中有两个公共函数,它们做的事情都差不多,但是其中一个会用
$this->setResultsFound(12)
设置var,而另一个不会

public function sortSearchBar($categoryID, $brandID, $sort = false, $limit = false, $search = false){
    foreach ($this->sortAwway as $key => $val) {
        $optionItems[] = '<option value="'.$key.'"'. (($sort == $key) ? ' selected="selected"' : '' ) .'>'.$this->htmlspecialchars($val).'</option>';
    }

    foreach ($this->searchLimit as $key => $val) {
        $limitItems[] = '<option value="'.$key.'"'. (($limit == $key) ? ' selected="selected"' : '' ) .'>'.$this->htmlspecialchars($val).'</option>';
    }
    $this->setResultsFound(12); //works

    return '
    <form action=...
    </form>';
}

public function showProductItemList($categoryID, $brandID = false, $page, $sort = false, $limit = false, $search = false, $cleanURL = true){

    //echo $this->echoArray($this->getProductsForCategory($categoryID, $brandID));
    $q = $this->getProductsForCategory($categoryID, $brandID, $sort, $search);

    $this->setResultsFound(12); //doesn't work

    return $this->formatProductResults($q, $limit, $cleanURL, $page);
}
公共函数sortSearchBar($categoryID、$brandID、$sort=false、$limit=false、$search=false){
foreach($this->sortAwway as$key=>$val){
$optionItems[]=''.$this->htmlspecialchars($val)。'';
}
foreach($key=>val时的此->搜索限制){
$limitItems[]=''.$this->htmlspecialchars($val)。'';
}
$this->setResultsFound(12);//有效
返回'
formatProductResults($q、$limit、$cleanURL、$page);
}
有人知道为什么吗

干杯,
Rhys

在字里行间,我认为
setResultsFound()
方法可能应该声明为
protected
,而不是
private


.

谢谢,但那没用。这是一个我以前从未见过的问题。即使将其设置为公共,也没有任何变化。您如何确定它不起作用?我只是想知道您调用
showProductItemList()
的方式是否导致该值在执行后被更改。您是对的。它似乎是在设置,而不是从公共get函数调用,除非我从模块外部调用它。我会在可见性方面做更多的工作。谢谢
public function sortSearchBar($categoryID, $brandID, $sort = false, $limit = false, $search = false){
    foreach ($this->sortAwway as $key => $val) {
        $optionItems[] = '<option value="'.$key.'"'. (($sort == $key) ? ' selected="selected"' : '' ) .'>'.$this->htmlspecialchars($val).'</option>';
    }

    foreach ($this->searchLimit as $key => $val) {
        $limitItems[] = '<option value="'.$key.'"'. (($limit == $key) ? ' selected="selected"' : '' ) .'>'.$this->htmlspecialchars($val).'</option>';
    }
    $this->setResultsFound(12); //works

    return '
    <form action=...
    </form>';
}

public function showProductItemList($categoryID, $brandID = false, $page, $sort = false, $limit = false, $search = false, $cleanURL = true){

    //echo $this->echoArray($this->getProductsForCategory($categoryID, $brandID));
    $q = $this->getProductsForCategory($categoryID, $brandID, $sort, $search);

    $this->setResultsFound(12); //doesn't work

    return $this->formatProductResults($q, $limit, $cleanURL, $page);
}