我尝试获取私有变量(limit)的值,但是我收到以下错误:
致命错误:未捕获错误:在第36行的/home/vagrant/Code/wp/wp-content/plugins/StorePress/app/library/Pagination.php中不在对象上下文中时使用$ this
我的班级:
$cia ="";
$grind = "";
while($data = mysql_fetch_array($sdata) ){
if($data["cia"]){
$cia .= $data["cia"] . "\r\n";
}
if($data["grind"]){
$grind.= $data["grind"] . "\r\n";
}
}
$grind = rtrim($grind);
$cia = rtrim($cia);
在这里,我正在尝试打印一个私有变量“$ this-> limit”,但是不允许打印由“__constructor”分配的值。
我的代码中是否有任何错误,或者是否有任何其他解决方案可以获得该值?
答案 0 :(得分:3)
我认为,问题在于您的OOP构建。如果不首先创建类对象,则无法回显$this
私有变量。所以解决方案可能是:
class Pagination
{
private $limit = 0;
private $limit_start = 0;
private $total = 0;
/**
* Generate Pagination for Products
* @param $pagination
* @return string
*/
public function __constructor($pagination = null)
{
$this->limit = $pagination['limit'];
$this->lim_start = ($pagination['start']) ?: null;
$this->total = $pagination['total'];
}
public function generatePagination()
{
return $this->limit;
}
然后在您的代码中,您需要回显限制值,您可以使用:
$pagination = new Pagination();
echo $pagination->generatePagination();
在第一行,您将创建新的Pagination()对象,在第二行中,您将从generatePagination类函数返回$ limit值。
答案 1 :(得分:2)
根据此link
,您的关键字__constructor不应该是__construct