$items
関数内と関数$items
外は 2 つの異なるスコープにあり、完全に異なる変数です。関数の$items
内側は呼び出しごとに空にリセットされ、関数の外側にも影響しません$items
。本質的に、関数は何もしません。本当に適切に、クラスを使用してこれを行う必要があります。
class Result {
protected $items = array();
public function add($num) {
$this->items[] = $num;
}
public function getResult() {
return array_sum($this->items);
}
}
$r = new Result;
$r->add(1);
...
echo $r->getResult();
static
変数を使用して、関数内の値を累積させることもできます。
function result_time($Num){
static $items = array();
$items[] = $Num;
return $items;
}
result_time(1);
...
$result = result_time(3);
echo array_sum($result);
しかし、それは本当に良い考えではありません。キーワードを使用して変数のスコープを共有することもできますがglobal
、これは悪い考えであり、宣伝するつもりはありません。変数のスコープについて学び、コードを適切に構成します。