ゴミ箱

くだらないことからUnityの知識共有まで

「PHP foreach 配列の中身を変える」で検索すると参照渡しがヒットする件について

半年くらい前の話。 業務で初めてPHPを触り始めてまだ数日のころに foreachで回した配列の中身を変更したいことがあり、 初心者だったのでネットで検索をしたところ…

$pricelist = array(80, 100, 120);

foreach ($pricelist as &$value){
  $value *= 1.05;
}
unset($value);

foreach文で配列要素の値を変更する - 繰り返し処理 - PHP入門

参照渡しがヒットする。
軽く調べた程度だとこの方法しかネットで拾うことができなかったので、 この方法でしかできないのかと思いそのままレビューに持っていくと… 「よく考えてみろ」と突き返されました。
よく考えてみればforeachで回すときに配列のkeyを持ってるわけだから参照渡しなんて使う必要がないことに気づく。(というかプロジェクトの他のコード読めば一発だった)

$pricelist = array(80, 100, 120);

foreach($pricelist as $key => $value)
{
    $pricelist[$key] = $value * 1.05;
}

これでいいやん… なんでこれがネットで出てこねえんだよクソga って思っただけです。
※参照渡しが悪なのではありません。