【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/09 18:02:05
  • 終了:2009/04/14 23:26:46

ベストアンサー

id:pahoo No.4

pahoo回答回数5960ベストアンサー獲得回数6332009/04/09 19:30:18

ポイント22pt

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

了解です。

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

id:upu

ありがとうございます.

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

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

2009/04/14 23:25:36

その他の回答(3件)

id:kuina_onRails No.1

kuina_onRails回答回数5ベストアンサー獲得回数02009/04/09 18:24:29

ポイント23pt

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

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

id:upu

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

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

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

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

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

hijk05回答回数1307ベストアンサー獲得回数232009/04/09 18:46:47

ポイント23pt

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

id:upu

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

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

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

pahoo回答回数5960ベストアンサー獲得回数6332009/04/09 18:54:11

ポイント22pt

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


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

id:upu

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

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

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

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

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

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

pahoo回答回数5960ベストアンサー獲得回数6332009/04/09 19:30:18ここでベストアンサー

ポイント22pt

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

了解です。

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

id:upu

ありがとうございます.

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

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

2009/04/14 23:25:36

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません