【问题标题】:PHP Module - Variable Wont SetPHP 模块 - 变量不会设置
【发布时间】:2011-11-30 00:19:23
【问题描述】:

我对模块化编程很陌生。

我无法在模块中设置变量,但仅限于特定函数。

我已经(删除了无用的东西):

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

有人知道为什么吗?

干杯, 里斯

【问题讨论】:

    标签: php oop variables module


    【解决方案1】:

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

    Read this.

    【讨论】:

    • 谢谢,但没用。这是我以前从未见过的问题。即使将其设置为公开也没有任何变化。
    • 您如何确定它不起作用?我只是想知道您调用showProductItemList() 的方式是否会导致值在执行后发生更改。
    • 你是对的。它似乎是在设置而不是从公共 get 函数调用,除非我从模块外部调用它。我会在能见度方面做更多的工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多