我有一个核心课程,我无法修改核心课程。我的核心类代码如下所示
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
。
答案 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函数。