質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.05%

PHPの変数名について。

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 1,243

score 20

独学でプログラミングを勉強している初心者です。
宜しくお願いします。

ドットインストールや、スクー、後は書籍を数冊読んでPHPの勉強をしております。

ちょっと気になったのですが、
WEBサービスを制作する時などは、最初に変数名やデータベースなどをエクセルなどにまとめたりして制作するのでしょうか。

書籍を読んでいて思ったのが、変数名とか、ごちゃごちゃになったりしないのかなーって思ったんです。

実際に制作する場合ってどうなのでしょうか。

初歩的な質問で申し訳ないですが、ご回答宜しくお願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+3

一番望ましいのは、沢山のグローバル変数を種類や用途ごとにクラスにまとめて置くことですね。
class Service {
    public $url;
    public $user;
    ....
}
こうすれば、他の用途で$urlや$userという変数を使っても区別が容易です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

例えばデータベースならば、テーブル設計書を記します。
コード上でテーブルのエンティティや、テーブル/列項目にアクセスする際の変数名としては、テーブル名/列名と一致させて扱います。

それぞれのクラス、ビジネスロジックにおいては、列挙してまとめる、ということはしたことがありません。
したとしても、クラス図や詳細設計書上において、言葉で表現するまでです。

例えば初心者向けの説明では、ざっくりとした簡単なコードを記述されると思いますが、実際に色々作ろうとしたら、物事においてクラス化を加速させるでしょう。
結果的に、何を扱っているか、というのはコードを記述する上で直感的に分かりやすい状態にはなると思います。(あくまでオブジェクト指向に則り、クラス化などが行われた場合)

ひどい例
<?php
$name1 = "テーブル名1";
$tbl1Column1 = "列1の値";
$tbl1Column2 = "列2の値";
$name2 = "テーブル名2";
$tbl2Column1 = "列1の値";
$tbl2Column2 = "列2の値";

echo $name1;
echo $tbl1Column1;
echo $tbl1Column2;
echo $name2;
echo $tbl2Column1;
echo $tbl2Column2;

テキトーな例(同じ名前の変数やメソッドだが、クラスが異なるので、何を操作しようとしているかが分かりやすい)
<?php
class Table1 {
  public $column1;
  public $column2;

  public function getTableName() {
    return "テーブル名1";
  }
}

class Table2 {
  public $column1;
  public $column2;

  public function getTableName() {
    return "テーブル名2";
  }
}

$table1 = new Table1();
$table1->column1 = "列1の値";
$table1->column2 = "列2の値";

$table2 = new Table2();
$table2->column1 = "列1の値";
$table2->column2 = "列2の値";

echo $table1->getTableName();
echo $table1->column1;
echo $table1->column2;
echo $table2->getTableName();
echo $table2->column1;
echo $table2->column2;

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+1

「実際に制作する場合」とのことなので、自身の経験を元に書いてみます。
私は仕事でWebベースのシステム開発を行っておりますが、開発メンバーは自分以外なし、もしくはアシスタントとして一人つく、といったような仕事ばかりしておりますので、人足的にはnenenenoneさんと大差ないかもしれません。

WEBサービスを制作する時などは、最初に変数名やデータベースなどをエクセルなどにまとめたりして制作するのでしょうか。 
3日後に改めて自分が書いたコードを見て、一瞬で理解できる自信がなかったら作ります。
データベースの定義書はほぼ必ず作っています。一瞬で理解できる自信がないのでorz
変数名リストは作りませんが、書き方にゆらぎが起きないように「コーディング仕様」や「用語集」、「英語対訳集」といった文書は作ります。

書籍を読んでいて思ったのが、変数名とか、ごちゃごちゃになったりしないのかなーって思ったんです。 
ごちゃごちゃします・・・!しない人はすごいです。
ただ、少しでもごちゃごちゃにならないような努力は行います。先述の「コーディング仕様」、「用語集」、「英語対訳集」などといった、書き方を統一するための文書は有効だと思います。

変数名の良い書き方などについては、「リーダブルコード」という書籍を読んでみるといいかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/02/23 10:22

    なるほどー!!有難う御座いました^^

    キャンセル

0

変数名や関数名をつけるときは、一目でどんな内容かがわかるようにします。

いきなり $hoge = $foo * 1.08 なんて出てきても理解できません。

変数名は、「一目で理解でき」かつ「綴りが複数できる($nedan と $nedannなど)ものにしない」のがベストではないでしょうか。

データベースに関しては、だいたいの構造をエクセルでも紙でもまとめて考えます。

ただ、慣れてくると「登録ユーザーのテーブル」などの構造がパッとわかってくると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る