【问题标题】:Setting a PHP Class Private value to a variable将 PHP 类私有值设置为变量
【发布时间】:2017-05-12 02:11:49
【问题描述】:

我正在尝试编辑一个 PHP 类来对查询结果进行分页。每页返回的记录数使用此代码设置

private $_limit_per_page = 20;

可以看出这是设置为 20,但我想在每个使用代码的页面上使用变量 $paginate 进行设置。

$paginate = 20;

然后在 Paginator 类中

private $_limit_per_page = $paginate;

我试图将代码放在另一个类中,但由于我对编码要求不是很熟悉,所以我有点挣扎,所以非常感谢任何帮助。

菲尔

【问题讨论】:

  • 你是否有权访问使用私有属性的类
  • 嗨 RiggsFolly,是的,我可以访问这些文件
  • 然后将属性更改为 public 或创建一个 getter 方法

标签: php pdo pagination


【解决方案1】:

请尝试以下方法:

class Pag { //create pagination class
  private $_limit_per_page;  //set private variable

  function __construct($limit = 20){  //set contructor to populate the limit to 20 by default, but override if something is passed
    $this->_limit_per_page = $limit;  //set the value to whatever was passed
  }
  function showMe() { //create a function that can output the variable, so you can see if it worked
    echo $this->_limit_per_page;  //output the variable
  }
}
$paginate = new Pag(35);  //instantiate the class, but override the limit to 35

echo $paginate->showMe(); //run it

【讨论】:

  • pendo,谢谢。这不是我所需要的,但非常感谢您的帮助。
【解决方案2】:

您需要的是在您的类中使用私有 var 的公共 setter 方法。 这可能看起来像

public function SetPageLimit($page_amount){
  $_limit_per_page = $page_amount
}

你可以在需要的地方调用它

$something = new YourClassWherePrivateIs();
$something->SetPageLimit($paginate);

或者如果你把上面的函数设为静态

  YourClassWherePrivateIs::SetPageLimit($paginate);

希望这会有所帮助。

【讨论】:

  • Mayrhofer,非常感谢,您的回复促使我研究这种方法,我认为我应该能够完成这项工作:) 非常感谢
  • 不客气。如果这为您解决了问题,您应该将您的问题标记为已回答。
猜你喜欢
  • 1970-01-01
  • 2013-06-05
  • 2013-09-14
  • 2013-11-12
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2019-06-05
相关资源
最近更新 更多