クマのブログ

つまづいたところ、学びを書いていきます

【PHP】他の言語では通用しないPHP特有の変数の宣言

前提

背景

  • 会社の研修中、PHPの基礎講座を受講

  • 今の会社に就職前に独学でPHPを学習していたが、初めて知ったことがあったので、アウトプット

事象(やりたいこと)

以下の問題を解く

問題

以下関数を定義せよ。

関数名:calcSum 引数:数値が複数格納された配列戻り値:sum(合計) 内容:引数で受け取った数値配列の値を全て合計した結果を戻り値で返します。

自分の回答

function calcSum($numbers){
    foreach ($numbers as $number) {
        $sum += $number; 
    }
    return $sum;
}

模範解答

function calcSum($numbers){
    $sum = 0;    // ※ココ
    foreach ($numbers as $number) {
        $sum += $number; 
    }
    return $sum;
}

結果

一応動作としては模範解答と同じ

問題点

  • 私の回答は「※ココ」箇所のを初期化せずにsumを宣言している

  • 一般的に、初期化をせずに変数を宣言する方法は他の言語ではしない。

必ず変数及び型の宣言をしてから処理を入れるので、この書き方は推奨はしない、との指摘があった。

  • また、$sumで定義する処理がもっと複雑になった際に、

$sumの初期化の位置がわかりづらく可読性に影響が出るのではないか、と思った。

所感

  • とにかく「変数は必ず初期化!」を意識する

  • この先扱うのはPHPだけではないので、他の言語を扱うことになった時の早いキャッチアップができるべく、ここは強く意識