public function setparam( $key, $value )
{
$this -> param[ $key ] = $value;
return $this;
}
Все работает отлично только возникает трудность которая выражается в том, что после определения параметров для одного объекта происходит переход к созданию параметров для второго объекта и в промежутке между переходами существует необходимость реинициализировать (очистить массив от содержимого). Есть наработка в этом вопросе:
Есть наработка в этом вопросе:
public function unsetparam()
{
foreach( $this -> param as $param )
{
array_pop( $this -> param );
}
return $this;
}
Это решение вроде хорошее, но если долго на него смотреть то хочется его по рефакторить. В направлении рефакторинга пробовал воспользоваться функцией reset ( $this -> param ) массив остался заполненным и ситуации где
reset ( $this -> param );
($this -> param === array()) возвращает bool(true)
не произошло. Протестировал функцию reset:
$array = array();
reset($array);
array_push($array, 1, 2,3,4,5);
reset($array);
var_dump(($array === array()));
var_dump($array);
/*
* bool(false);
* array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) }
*/
Не могу понять почему. Т.о. функция:
public function unsetparam()
{
reset ( $this -> param );
return $this;
}
неработает. Но и блок
public function unsetparam()
{
foreach( $this -> param as $param )
{
array_pop( $this -> param );
}
return $this;
}
остается.
Существуют ли другие эффективные способы рефакторинга функции unsetparam?
_____________
Трус не играет в хокей