PHP私有变量问题
我尝试获取私有变量(limit)的值,但得到以下错误: 致命错误:未捕获错误:在第36行的/home/vagrant/Code/wp/wp content/plugins/StorePress/app/library/Pagination.php的对象上下文中不使用$this 我的班级:PHP私有变量问题,php,oop,private,Php,Oop,Private,我尝试获取私有变量(limit)的值,但得到以下错误: 致命错误:未捕获错误:在第36行的/home/vagrant/Code/wp/wp content/plugins/StorePress/app/library/Pagination.php的对象上下文中不使用$this 我的班级: class Pagination { private $limit = 0; private $limit_start = 0; private $total = 0; /** *
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()
{
echo $this->limit;
}
这里,我试图打印一个私有变量“$this->limit”,但不允许打印由“\u构造函数”分配的值
我的代码中是否有任何错误,或者是否有其他解决方案可以获得该值?我认为,问题在于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值。我认为,问题在于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值。您的关键字uu构造函数是否应该根据此而不是根据此$pagination=pagination::getPagination()而不是关键字u构造函数;这也会返回相同的错误。当然,是的,因为双冒号运算符是允许访问类的静态、常量和重写属性或方法的标记。您的类不是静态的,
$limit
变量不是常量,因此不能使用此构造。那么,当从控制器及其对象调用私有变量时,从不同函数访问私有变量的解决方案是什么?最好的解决方案是在类分页中创建新函数,它将只返回我的代码中的$limit
变量-generatePagination()
。然后,您需要创建类分页的新实例,然后可以通过->generatePagination()
调用获取$limit
值。$Pagination=Pagination::getPagination();这也会返回相同的错误。当然,是的,因为双冒号运算符是允许访问类的静态、常量和重写属性或方法的标记。您的类不是静态的,$limit
变量不是常量,因此不能使用此构造。那么,当从控制器及其对象调用私有变量时,从不同函数访问私有变量的解决方案是什么?最好的解决方案是在类分页中创建新函数,它将只返回我的代码中的$limit
变量-generatePagination()
。然后需要创建类分页的新实例,然后可以通过->generatePagination()
调用获取$limit
值。