• 締切済み

PHPのコーディングルール?

お世話になります。 只今、PHP5で開発しているのですが 皆様のご意見を聞きたいと思いまして、質問させていただきます。 以下の場合、どちらでコーディングしますか? また具体的な理由などありましたら、ご教授頂けますでしょうか。 (1)if(!isset($hoge)){ (2)if(isset($hoge) == false){ 以下の場合、どちらでコーディングしますか? また具体的な理由などありましたら、ご教授頂けますでしょうか。 (3)require_once(/jp/ne/goo/Hoge.php) ・・・絶対パスでrequireする。 (4)require_once(goo/Hoge.php)  ・・・include_pathを通すなどして、相対パスで記述する。 基本的なことかもしれませんが、ご教授よろしくお願いいたします。

みんなの回答

  • magid
  • ベストアンサー率73% (49/67)
回答No.1

PHPは日曜プログラマなので、プロの方とはレベルがかなり違いそうですが…。 関数の返り値は、isXXXとそれ以外とで記述方法を分けています。  isXXX: if (!isXXX())  それ以外: if (fopen(...) == false) 理由は、isXXXのように返り値がtrueとfalseしかないものは、(関数に適切な名前がつけてあれば)比較演算子がなくても意味がわかるので、文字数が少ない方がすっきりしているから。それ以外の関数でfalseを返すのはたいていエラーの場合ですから、エラー処理をしていることがはっきりわかるようにfalseとの比較をコードとして記述するようにしています。 requireについても、汎用的なパッケージとして書くときと、システムとして書くときとで分けています。  パッケージ: require_once("xxxx");  システム: require_once(dirname(__FILE__)."/"."xxxx"); パッケージとして使うときには普通はinclude_pathを通すだろうと考えて、こうしています。システムの場合にはinclude_pathがなくても動くように書くのですが、それでも絶対pathは使いたくないのでそのファイルからの相対pathとなるようにしています。絶対pathを使いたくない理由は、ファイルを置くディレクトリを変更したらファイルを編集しない限り動かない、というのが嫌だからです。

bakenshibakenshi
質問者

お礼

magid様、ご教授有難う御座います。 私の場合を書くのを忘れておりましたが 私の場合、以下です。 (2)if(isset($hoge) == false){ 理由は、省略しないできちんと書く。そして明示的に書くことで分かりやすくするということです。 (3)require_once(/jp/ne/goo/Hoge.php) 理由は、どのモジュールをrequireしているのかを正しく認識するためです。 まっディレクトリ構造が変わった場合、大変ですが。

関連するQ&A