フルスタックエンジニアのノウハウ
2020.01.13    2022.06.12

正しい変数名の付け方

この記事の動画版はこちら(画像クリックでYoutubeに飛びます)

チャンネル登録お願いします!


皆さんは「変数名」はどのように付けていますか?


ソースコードには、無数の変数が使用されますが、プログラマーはその全てに名前を付けなければなりません。これを「変数に命名する」と言います。


今回は、変数名の付け方について、実際のプロの現場ではどのような事に注意して行っているのかということを説明していきます。



どんな名前がベスト?


 変数名には、誰が見ても「その変数に何が入っているのか」が分かりやすい名前を付けましょう。あまり長くせず簡潔に分かりやすい名前がベストです。


以下で詳しく解説していきます。



変数名の付け方のきまり


まず、変数名の付け方のきまりですが、PHPの場合、変数名は「$」で始まり半角英数字とアンダースコア( _ )が使用出来ます。($のすぐ後に数字は使用出来ません)


また、大文字と小文字は区別されます(「$mail_address」と「$Mail_address」は別の変数)


これらの命名規則に反すると実行時にエラーとなります。


なお、命名規則ではありませんが、


複数単語になる場合は、単語と単語の間をアンダースコアで区切るか(例:$mail_address)、2語目以降の先頭文字を大文字にします。(例:$mailAddress)


 現場のコツ
これらは混在すると見づらくなるので、自分の中でどちらかにルールを決めておきましょう。


また、変数名を全部大文字にすることも出来るのですが、「特別な意味を持つ変数」を全て大文字で表現することがあるので、それと区別するために全部大文字にするのは避けましょう。


ちなみに僕は、全部小文字単語間はアンダーバーで統一しています。
例:$mail_address、$user_name、$error_messageなど



変数名の良い例/悪い例


良い変数名の付け方ですが、その変数に「どんなデータが入っているのか」を、前後の処理を追わなくても、ある程度想像出来る名前がベストです。


例えば上記の「$mail_address」という名前であれば、後からソースコードを読んだ時に「ああ、この変数にはメールアドレスが入っているんだな」と想像することが出来ますよね。


 誰にでも完全に内容の分かる命名というのは難しいですが、極力このように分かりやすい名前をつけるようにしましょう。


逆に、最もダメなのは「$hensuu1」「$data」「$var」といった命名です。

入門書でもこういった変数名はよく見かけますがこれは駄目です。


面倒になるとついやってしまいがちですが、こういった名前だと変数がどのような用途なのか全く想像出来ません。


また、変数名に困ると英語辞書などで単語を調べることもあると思いますが、後から自分で見て理解出来ないような難しい単語を選ぶのもNGです。


例えば「経費」を保持する変数に「$expenditure」と付けても、多くの人はパッと見で意味が分からないですよね?だったら「$cost」といったもっと簡単な単語をチョイスするか、あまりカッコ良くはないですが、分かりやすければ「$keihi」といったローマ字表記でも良いかと思います。


【変数名の付け方(良い例)】

 $error_message:エラーメッセージが保持されているのが分かる
 $err_msg:パッと見で分かるなら、このように略してもOK
 $alert_view_flg:アラートを表示させるかどうかのフラグだと分かる
 $user_id:ユーザーIDが保持されているのが分かる


【変数名の付け方(悪い例)】

$data:何のデータ?
$var:variable(変数)の略?
$aaa:論外
$expenditure:意味を調べないと分からない
$taro:誰かの名前?



現場のノウハウ


ここで1つ現場のノウハウをお伝えします。


データベースのテーブルから取得したデータ配列には、テーブル名をそのまま付けたり、各項目のデータはカラム名と全く同じにしておくと一目瞭然で分かりやすくなります。


例えば、データベースの「member_nickname」というカラムのデータを扱う変数には「$member_nickname」とそのまま付けます。


カラム名と一致させずに「$name」といった変数名を付けている人を良く見ますが、一致させておいた方が後からソースコードを見たときに分かりやすくなります。


ソースコードを見たときに、この「$member_nickname」という変数は、データベースの「member_nickname」のデータを扱っていると予想出来ますし、スペルが一致していることでチェックもしやすくなり、結果的にスペルミスなどのバグも少なくなります。




この方法はとてもおすすめなので、ぜひ自分のルールに取り入れてみてください。



まとめ


 変数名は、後から誰が見ても「どんなデータが入っているのか」が分かりやすく簡潔に。


プログラム的には、変数名にどのような名前をつけても同じように動くので、入門書などではあまり触れられることがありません。


しかし、これがバグの軽減やプログラム修正コストの削減にもつながるので、実際の現場ではとても大切なことなんです。


ソースコードは一度書いたら終わりではなく、後から何度も修正されるもの。


ソースコードを書くときは常に誰かに見られる前提で書くことが大切です。



なお、変数の基礎については以下の記事で解説していますのでこちらも併せてご覧ください。

関連記事

関数とは?


おすすめ記事