PHP私有变量问题

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; /** *

我尝试获取私有变量(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;

 /**
  * 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
值。