2011-11-29 65 views
0

我对模块化编程很新奇。PHP模块 - 变量不会设置

我在设置模块中的变量时遇到问题,但仅限于特定功能。

我有(无用的东西删除):

class Products extends Modules { 

    private $resultsFound; 

    function __construct() { 
    parent::__construct(); 
    } 

    public function getResultsFound() { 
    return $this->resultsFound; 
    } 

    private function setResultsFound($resultsFound) { 
    $this->resultsFound = $resultsFound; 
    } 

} 

我在模块中2个公共职能,既做到足够接近同样的事情,而是一个将设置VAR与$this->setResultsFound(12)和一个不会。

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); 
} 

有没有人有任何想法为什么?

干杯, 里斯

回答

2

字里行间,我认为setResultsFound()方法或许应该申报protected,不private

Read this

+0

谢谢,但没有奏效。这是我以前从未见过的问题。即使将其公开化也没有改变。 – TMPilot

+0

它是如何确定它不起作用?我只是想知道,如果你调用'showProductItemList()'的方式导致值被执行后被改变。 – DaveRandom

+0

你说得对。这似乎是设置,而不是从公共get函数调用,除非我从模块外部调用它。我会在可见度方面做更多的工作。谢谢。 – TMPilot