ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PHP:defineを使わず変数を使っているプログラム

何年か前に作成されたプログラムの修正をしています。

共通ファイルに変数で固定値が書かれていて、変数を使って処理しています。

$systemId = 1;

 

他の書き方

固定値を書くなら、defineを使う方法があります。

define("SYSTEM_ID","1");

どちらでも適切にコードを書けばプログラムは動作するので、 問題はありません。

それでもdefineで書くべきだと考えています。

 

defineにする理由

全部大文字で書いておけば、固定値だとわかりやすいというのがあります。

他には、今回関数を追加したときに、関数内で共通ファイルの変数を使うためには、変数のスコープが違うため、関数内でglobalをつけないといけないことを、気づきましたというか思い出しました。

変数の場合は、以下のように書かなければいけません。

function getParam() {
    global $systemId;
    echo $systemId;
}

defineで定義していれば、globalをつける必要はありません。

function getParam() {
    echo SYSTEM_ID;
}

 

今となっては誰が作ったのかわかりませんが、 再度利用するときのことも考えて、defineで定義をしなおしています。