2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【初心者必見】php 変数名の付け方

Last updated at Posted at 2022-12-22

■はじめに

この記事は、まだPHPの学習中の筆者が書いています。
学習中、問題を解いているだけでも、様々なエラーにぶつかります。
私と同じように学習している周りは普通にできることも、私はできないの?とか、私向いてないじゃないかと思った時に、私は、時間がかかっても、変数名をつけるようになりました。
その結果、"型が違いいます"とういエラーを激減させることができました。
同じような境遇の方たちに、ぜひ読んでほしいです。

■変数の命名規則について

コーディングは、後から修正するときに読みやすくするためのルールに則って行われます。
コーディング規約PSRの命名規則( https://www.infiniteloop.co.jp/docs/psr/psr-1-basic-coding-standard.php )には、次のものがあります。

・クラス名はパスカルケースで記述する。
・クラス定数名はコンスタントケースで記述する。
・関数名はキャメルケースで記述する。

一番よく使われる変数については規則を作っていないようです。
今回は、変数名についてです。

変数名は自由につけることができますが、分かりやすいコードを書くためにも、いくつか気を付ける点があるので、紹介します。
命名するときに気を付ける点は以下の通りです

変数の命名規則は4つある
 1. 規則1:「$変数名」の形式で書く
       変数名の先頭には「$」を付けます。
       「なぜ?」「なんでつけるの?」
       理由は『変数ですよ!』って一目でわかるようにするためです。

   2. 規則2:1文字目は「文字」or「_」(※数はダメ!)
        変数名の1文字目は「文字」or「アンダースコア(_)」でつけましょう。
        数字や(_)以外の記号はNGです。
        ※アンダースコア(_)は英数字

   3. 規則3:2文字目以降は、数値を使っていい!
        2文字目以降は、数値を使うことができます。
        先ほど言っていたのは、「名前の先頭に付けてはいけない」ということです。

   4.規則4:「大文字」と「小文字」は区別される
        PHPでは、大文字と小文字は区別されます。
        例えば、「val」と「Val」は別物ということです。
        ちなみにですが、「print」「sort」など、PHPにあらかじめ繰り込まれている関数は区別されません。

■きれいな変数名を付けるための『5つのこと』

No 項目 良い 悪い
1 人目で分かる score, birth   m,n
2 長すぎず短すぎず password,name pw,handle_name
3 ローマ字はNG name,age namae,nenrei
4 紛らわしい見た目にしない tel/Tel(大文字小文字の区別), user/user(1文字違い)

長すぎず、短すぎず
むやみに省略するのはよくありません。
とはいえ、長すぎる変数名も良くありません。

■名前の記法ルール

記法 概要
camelCase記法 先頭文字は小文字、その後、単語の区切りを大文字で表記 $username
Pascal記法 先頭文字も含め、すべて単語の頭文字を大文字で表記 $UserName
アンダースコア法 全ての文字は小文字/大文字で表し、単語の区切りは、アンダースコア(_)で表記(スネークケース記法ともいう $user_name

どれを使ってもいいですが、PHPの世界では以下のように使い分けがされています。

記法 用途
camelCase記法 変数/関数
Pascal記法 クラス
アンダースコア法 定数

一つのポイントになるのが、変数は通常たくさん作られることです。
つまり、その分名前をたくさん考えないといけなし、タイピングも多くなります。

このことから、変数名にはタイピングしやすいパスカルケースやスネークケースが選ばれやすい傾向にあります。変数が全部大文字だとタイピングしにくいですよね。私自身、PHPの学習効率を上げるために、変数に名前を付けるようになりました。私は、PHPの学習中でキャメルケースを使っています。理由は単純で変数名の1文字目が小文字の方が、入力候補が出るまでを考えて効率がいいからです。それと、PHPであらかじめ繰り込まれている関数に、スネークケースを使用されているので、関数と識別しやすいと思ってキャメルケースを使っています

■まとめ

■最初に工夫したこと

その変数の型を表すstrやintなどを先頭の単語にして、キャメルケースにする場合もあります。例えば、strNameという変数を作ると、それがstring(文字列)型で名前を入れる変数であることの想像がつくと思います。型が分かるようにするのはエラーを防ぐのに有効です。型の間違いによる不具合を防げるからです。例えば、string(文字列)型にしか使えない関数、array(配列)型にしか使えない関数などが多数存在し、その度に起きていたエラーも減って、実際に学習の途中で、変数の中身がstring(文字列)型なのかarray(配列)型なのか、助けられました。

■最近変わった工夫の内容

今は、変数名を見て、どんな処理をするのか想定しやすいように、型を表すstrやintなど変数名を付けるという考え方をやめて、型名の代わりに〇〇の距離や〇〇の時間など、の名前をつけて、要素が複数入っている array(配列)型には、語尾に複数形の「s」を付けるようになりました。
結果、中身がstring(文字列)型なのかarray(配列)型なのかだけではなく、foreach文などで扱いやすくなりました、

■最近感じるようになったこと

PHPであらかじめ繰り込まれている関数に、スネークケースを使用されているので、関数と識別しやすいと思ってキャメルケースを使っていますが、これから先、webサイトなどを作成したりしていくに向けて、スネークケースの方がアンダーバーを入れるのか入れないのか、いちいち迷う必要がなく、とにかく単語の区切りにはアンダーバーを使うということが分かって、楽なのではないかと考えされることもあります。実際にWordPressなどは、全てスネークケースで記述されているようです。

2
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?