dポイントプレゼントキャンペーン実施中!

PHPの面白さが分かってきて、コツコツ演習しているのですが、気になることが

いくつかあるので質問しました。


問1
PHPは変数宣言をしなくていい、ということで驚いています。

でも、PHPプログラマーの方って、慣習的にどんな変数にしていますか?

接頭辞のようなものを付けているのでしょうか?

たとえば、name とするよりも strName のほうが、なんとなく分かりやすいような気がします。

このあたりは、どうなのでしょうか?


問2
a.php
b.php
c.php

という3つのファイル内では、同じ関数を使っているとします。こんなとき、それぞれのファイルに

同じ関数を書き込むよりも、ひとまとめにしたほうがいいと思います。


たとえば、function.php なんてファイルを作って、a.php、b.php、c.php の各ファイルの冒頭で、

include して、関数を使うたびに呼び出したほうが、読みやすくなると思いました。

なんでもかんでも、ひとつのファイルに書いてしまうと、メインの処理がどうなっているのか、分から

なくなるので、このあたりは、慣習的にどんな書き方をしているのかなと思って質問しました。


問3
問2とややかぶりますが、入力チェックなども関数化して、別ファイルにまとめて記述するものでしょう

か? そして、必要になったら呼び出してチェックする。このあたりは、どんな書き方をしていますか?


問4
自作の関数、ファイルの名付け方について。

自分で作った関数を命名する際に、f_ とか fun ではじまる接頭辞を付けるものでしょうか?

他者の書いたプログラムを参考にしていると、突然、知らない関数が出てきて、自作の関数だと気付く

ことがあります(接頭辞が付いていれば、もっと早く気付いたと思います)。


また、php_editor なる便利なツールがあったので、使い始めたのですが、プロジェクト名やphpファイル、

関数ファイルのファイル名には、なんらかの規則性をもたせていますか?

たとえば、プロジェクト名なら、pro と接頭辞をつけたりしますか? という質問です。


組み方が我流になる前に、実際に仕事で使っている方は、慣習的にどんな書き方をしているのか知りたいの

ですが…。

よろしくおねがいします。

A 回答 (3件)

私は我流なのでプロジェクト内での運用はわかりませんが参考までに



>PHPプログラマーの方って、慣習的にどんな変数にしていますか?

型がわからない変数であれば「ハンガリアン記法」が有効かもしれませんね
ただ、必ずしも正しいとは言えないので、プロジェクトの方針次第だと思います。

http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3% …

個人でやる場合は覚えていられる範囲で適当につけて弊害はあまりないでしょう。
かくいう私もあまり気にせずに適当に命名しています。
むしろいい加減に見えるところがPHPの敷居をさげて間口を広げている利点ですから。
(逆にそのせいで初心者がぶちあたる壁もあるのですが・・・)

>それぞれのファイルに
>同じ関数を書き込む

さすがにそれはないですね。
よく使うコマンドなどはcommon.phpなどを用意してクラス化するのが妥当でしょう。

>入力チェックなども関数化

ある程度標準化はできるでしょうけど、バリデート・サニタイズ関連は
かなり個別ケースが多いので都度でチェック用関数を作る方がよいような気がします。

>突然、知らない関数が出てきて、自作の関数だと気付く

これはあまり気にしないのがよいかと
そもそも関数は宣言されているのが前提なので、プログラムの一部だけ切りだして
改変するならともかく、全体を見据えて行えばさほど問題にはなりません。
また標準関数はいずれにしても名前を覚えないと話にならないので
しらない関数名がでてきたらマニュアルを参照すればユーザー関数と判断できます。
また統合ツールでユーザー関数の参照もできるものもあるし、エディタだって
タグジャンプすればすぐですから

むしろ命名方法としてはラクダ式(キャメルケース/パスカルケース)にするか
アンダスコア式(スネークケース)にするかの統一とか、動詞-形容詞-名詞の
順番をどうするとか、ゲッタやセッタで接頭辞にget、setをつけるとか
当たり前のようなことの方が意外に統一されてないとみにくくなるので
注意が必要ですね。

一応公式にも最低限の提言がでています。

http://www.php.net/manual/ja/userlandnaming.php

Zendだとこのへん

http://www.zend.co.jp/tech/index.php?%A5%B3%A1%B …

あとはこのへんとか参考にしてください

http://www.okapiproject.com/java/java_codeconven …
    • good
    • 0
この回答へのお礼

長文回答ありがとうございました。

なるべく定石めいた名付け方や作り方をしたいものです。何度も使う関数は、別ファイルを作って呼び出すようにしました。

1歩前進できたような気がします。

お礼日時:2011/10/28 08:03

ハンガリアン記法は現在ではオブジェクト指向との相性が悪いのであまり推奨されていないようです。

オブジェクト指向プログラミングでの記法についてはMSDNの名前付けのガイドラインが参考になるとおもいます。

名前付けのガイドライン
http://msdn.microsoft.com/ja-jp/library/cc433292 …

注目すべきは「メソッドの名前付けのガイドライン」と「プロパティの名前付けのガイドライン 」です。とりあえずメソッドが関数名、プロパティが変数名と考えていただければ結構です。
    • good
    • 0
この回答へのお礼

ありがとうございます。メソッドとプロパティでは、なんとなく自分でも使い分けていました。

お礼日時:2011/10/28 07:57

おっしゃるとおりですね。


自分の場合、チーム開発をする機会があまりないので、厳格なルールを持っていないのです。
後で自分が書いたはずのソースコードを解読できなくなっても困るので、ある程度の癖があります。
お恥ずかしい限りですが...

問1
混乱しそうなときだけ、接頭辞をつけたり、コメントを書いています。たいてい変数は「名詞」をそのまま使うことが多いです。

PHPを利用したたとえばPEARライブラリの開発では「コーディング規約」を設けています。
http://pear.php.net/manual/ja/standards.php

問2、3
自分はクラスを書いて、再利用可能な形にしています。

問4
自分の場合、接頭辞はつけませんが、「動詞+目的語」のような命名をすることが多いです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

意味のある名付け方をしているわけですね。変数の名付け方にしろ、ある程度、我流になってしまうのも仕方ないことかもしれませんね。

おおきく外さないように、回答を参考にしながら組んでいきたいと思いました。

お礼日時:2011/10/28 08:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!