【PHP】【名前衝突回避】

index.phpから,自作のミニ掲示板やアクセスカウンターなどを呼び出す構成でサイトを構成しようとしていますが,
同じ名前の関数があって,エラーになってしまいます.

関数の名前を変更する以外に,普通はどういった方法で名前の衝突を回避しているのでしょうか?
PHP5.3には名前空間が実装されたみたいですけど,使っているサーバーはしばらく5.2のままのようです.

【現在の状態】
■index.phpの一部
include ('./minibbs/minibbs.php');
include ('./counter/counter.php');

■minibbs.phpの一部
function getData(){
//掲示板のデータを取得する処理
}

■counter.phpの一部
function getData(){
//アクセスカウンターの値を取得する処理
}

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2009/04/14 23:26:46
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pahoo No.4

回答回数5960ベストアンサー獲得回数633

ポイント22pt

しかし,今私が求めている事は,少ない変更で済ます事ではなく美しいソースのあるべき姿です.

了解です。

それでしたら、クラスにメンバ関数としてカプセル化するのが定石です。private / public の使い分けを行うことで、衝突することはほとんどなくなるはずです。

id:upu

ありがとうございます.

今,クラス化して書き直してます.

美しいソースは一日にしてならずですね

2009/04/14 23:25:36

その他の回答3件)

id:kuina_onRails No.1

回答回数5ベストアンサー獲得回数0

ポイント23pt

接頭字をつけるのが一般的でしょうか。

bbs_getData()やcnt_getDataなどとしてみてはいかがでしょうか。

id:upu

回答ありがとうございます.

しかし,関数の名前を変える以外の方法について知りたかったです.

クラスを使う,定義した関数を無かったことにする等...

とりあえず,現在は接尾辞をつけて動かしてます.

2009/04/09 18:46:26
id:hijk05 No.2

回答回数1307ベストアンサー獲得回数23

ポイント23pt

クラスのメンバー関数にするのが普通です。

id:upu

回答ありがとうございます.

簡単なサンプルソースがあった方がうれしかったです.

2009/04/09 19:17:56
id:pahoo No.3

回答回数5960ベストアンサー獲得回数633

ポイント22pt

ご質問のようなケースでは、関数名を変えるしか手段はないでしょう。


includeの代わりに、file_get_contentsでいったん変数に読み込んで、置換関数で関数名を置き換え、evalを実行すれば、ソースを変えずに関数名を変えることはできますが、安全性の保証はしません。

id:upu

回答ありがとうございます.

そのような方法があるのですね.

しかし,今私が求めている事は,少ない変更で済ます事ではなく

美しいソースのあるべき姿です.

言葉足らずですみません.

2009/04/09 19:20:46
id:pahoo No.4

回答回数5960ベストアンサー獲得回数633ここでベストアンサー

ポイント22pt

しかし,今私が求めている事は,少ない変更で済ます事ではなく美しいソースのあるべき姿です.

了解です。

それでしたら、クラスにメンバ関数としてカプセル化するのが定石です。private / public の使い分けを行うことで、衝突することはほとんどなくなるはずです。

id:upu

ありがとうございます.

今,クラス化して書き直してます.

美しいソースは一日にしてならずですね

2009/04/14 23:25:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません