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

【プログラミング】変数名ってどう付ける?

【プログラミング】変数名ってどう付ける?

こんにちは、徳田です。

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

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

これを「変数に命名する」と言います。

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

なお、変数とは何かが分からない方は、変数について説明している記事がありますので、そちらをご覧ください。

関連記事

変数とはプログラムを汎用的に動かすためのマジックアイテム


この記事で分かること


・変数名の付け方のきまり
・変数名の良い例/悪い例
・開発現場のノウハウ

【目次】
  • ・結論から言うと
    ・変数名のきまり
    ・良い例/悪い例
    ・現場のノウハウ
    ・まとめ

結論から言うと


誰が見ても「その変数に何が入っているのか」が分かりやすい名前を付ける。

あまり長くせず簡潔に分かりやすく。


変数名のきまり


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つ現場のノウハウを。

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

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

カラム名と一致させずに「$name」といった変数名を付けている人を良く見ますが、ここは一致させておいた方が良いです。

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



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

まとめ


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

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

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

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

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


おすすめ記事
無料メルマガ配信中