首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从类OOPS的外部获取私有变量的最后一个值

从类OOPS的外部获取私有变量的最后一个值
EN

Stack Overflow用户
提问于 2016-01-22 14:53:36
回答 2查看 60关注 0票数 0

我有一个核心类,但我不能修改核心类。我的核心类代码如下所示

代码语言:javascript
复制
class Test
{
    private $container = [];
    public function sample($input)
    {
            return array_push($this->container, $input);
    }
}

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

代码语言:javascript
复制
$sizeval = new Size(); 
$sizeval->sizeadd('1');
$sizeval->sizeadd('2');

已成功添加值。但我的问题是,我只想添加10个值,所以我想要来自父类的count($this->container)。然后,我想检查sizeadd函数,如下所示

代码语言:javascript
复制
public function sizeadd($element)
      {
          if(count(container count)< $this->maxSize)
            return parent::sample($element);
      }

我无法获取父类$container array

EN

回答 2

Stack Overflow用户

发布于 2016-01-22 15:06:21

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

代码语言:javascript
复制
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;
    }
}
票数 3
EN

Stack Overflow用户

发布于 2016-01-22 15:00:33

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

代码语言:javascript
复制
class Test
{
    private $container = [];
    public function sample($input)
    {
            return array_push($this->container, $input);
    }
    // counts container
    public function countContainer(){
         return count($this->container);
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34940717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档