• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コーディングの綺麗な、サンプル。(長文)

コーディングの綺麗な、サンプル。

このQ&Aのポイント
  • コーディングの綺麗な方法とはどのようなものなのかについて悩んでいます。具体的には、ユーザー関数内への変数の渡し方に関してです。変数で引き渡すか、定数にして読み出すか、もしくはグローバル変数にするか、どれが適切か分かりません。自分はグローバル変数を使わないようにしているのですが、未定義のグローバル変数は危険だと感じています。定数は便利ですが、スクリプト中に$のない変数があるのが違和感があります。また、引数のはしごのような形にすると見た目が良くないと感じています。このような臨機応変な使い方が上手くできないので、綺麗なコーディングをする方法を教えて欲しいと思っています。
  • 綺麗なコーディングについて悩んでいます。具体的には、ユーザー関数内で変数をどのように渡すべきか分かりません。変数で引き渡すべきか、定数にして読み出すべきか、グローバル変数にすべきか、どれが良いのでしょうか。自分はグローバル変数を避けるようにしていますが、未定義のグローバル変数は危険だと感じています。定数は便利ですが、スクリプト中に$のない変数があるのが違和感があります。また、引数のはしごのような形にすると見た目が良くないと感じています。このような使い方について、助言をいただけると嬉しいです。
  • コーディングの綺麗な方法について教えてください。具体的には、ユーザー関数内で変数を渡す方法や、グローバル変数の使い方について悩んでいます。グローバル変数は避けるべきか、定数を使うべきか、引数のはしごにするべきか、どれが良いのでしょうか。また、定数を使う場合、定数名がそのまま現れてしまうこともあり、違和感を感じます。綺麗なコーディングをするための初心者向けの情報も教えていただけると嬉しいです。自分なりにはグローバル変数は避け、ユーザー関数の引数の数を少なくするようにしていますが、これが正しい方法なのか不安です。

質問者が選んだベストアンサー

  • ベストアンサー
  • tao_0077
  • ベストアンサー率48% (33/68)
回答No.1

なぜ関数を使うのか、と言うことを考えていくとおのずと答えが出るかも。まぁ、コーディング規約なんて「自分だけ」で閉じている環境であれば(他の人が見たり修正したりしない)、多分に好みの問題になりますが。 関数をうまく使えば、その関数で実現できる機能を汎用化することができます。ある場所で使った関数を、別の場所でも使えるようになる、と言うことですよね。 こうすることによって効率良く再利用可能なコーディングができますし、かつメンテナンス性も向上します。 ただ、関数内でグローバル変数を使うと、その関数はそのグローバル変数に依存してしまうことになります。その関数が、作成するスクリプトにべったりな関数なら問題ないですが、もしその関数を別のスクリプトから呼び出したいとなると、わざわざ関数の中身を確認して、同じグローバル変数を作らなければならないことになってしまいます。グローバル変数は便利ですが、あまり使い過ぎると関数の汎用性を無くしてしまうことになるのです。逆に、関数内にローカル変数しか使っていない場合、その関数の中身を知らなくても、機能と引数の数(とその意味)さえ分かっていれば使えることになります。 ということで、個人的には ・スクリプト固有の関数 --> グローバル変数の使用を可とする ・再利用したい末端関数 --> スーパーグローバル以外のグローバル変数は絶対に使わない ・スクリプトの最初から最後まで値が変わらないものは定数に。(たとえばウェブページに表示する管理者メールアドレスとか、データベースのURLとか)。 としています。 ご自分でいろんなスクリプトで使いまわせる便利なライブラリファイルを作ってみると、引数とグローバル変数の使い分けをどうすればいいのかわかってくると思いますよ。

noname#10559
質問者

お礼

とても参考になりました。 ライブラリは作った事がありませんでした。 個々があまり共通性がない事、コードが短い事、外部に 作ると忘れてしまう事、常習的にコピー&ペイストで 済ます事。^^; 確かに外部に作った方がメンテナンス性が上がりますね。でも、外部ファイルは、読み込む際に負荷が大きいと、 よけいな心配をしていました。

noname#10559
質問者

補足

回答に対しての補足ではありませんが、 個々を参考にさせてもらっています。 小規模PHP製作所 http://www.kenjiweb.com/

関連するQ&A

専門家に質問してみよう