获取类OOPS的私有变量最后一个值

时间:2016-01-22 06:53:36

标签: php oop stack private

我有一个核心课程,我无法修改核心课程。我的核心类代码如下所示

class Test
{
    private $container = [];
    public function sample($input)
    {
            return array_push($this->container, $input);
    }
}

我的扩展课程在下面给出

class Size extends Test
{  
  private $maxSize = 10;
  public function sizeadd($element)
  {
      //I want get the parent container 
        return parent::sample($element);
  }
}

我已使用以下代码添加值

$sizeval = new Size(); 
$sizeval->sizeadd('1');
$sizeval->sizeadd('2');

成功添加了值。但我的问题是我只想添加10个值,所以我想要父类的count($this->container)。然后我想检查sizeadd函数看起来像这样

public function sizeadd($element)
      {
          if(count(container count)< $this->maxSize)
            return parent::sample($element);
      }

我无法获得父类$container array

2 个答案:

答案 0 :(得分:3)

尝试更改扩展类,如下所示:

class Size extends Test
{

    private $maxSize = 10;

    /**
     * To track how many elements are being added
     * 
     * @var integer
     */
    private static $count = 0;

    /**
     * Adding element in size
     * 
     * @param integer $element
     * @return integer
     */
    public function sizeadd($element)
    {
        if (self::$count < $this->maxSize) {
            self::$count = self::$count + 1;
            return parent::sample($element);
        }
    }

    /**
     * This is just for getting the current number of count
     * this is optional method.
     * @return integer
     */
    public function getCount() 
    {
        return self::$count;
    }
}

答案 1 :(得分:-1)

在基类中创建一个函数来计算容器数,并在子类中使用该函数来获取容器的总数。

class Test
{
    private $container = [];
    public function sample($input)
    {
            return array_push($this->container, $input);
    }
    // counts container
    public function countContainer(){
         return count($this->container);
    }
}

现在在子类中调用此countContainer函数。