人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpのfunctionに関して。

先にfunctionで定義した関数を上書きはできないのでしょうか?
function a() {
$hoge = "a";
return $hoge
}

function a() {
$hoge = "b";
return $hoge
}

a();//bが出て欲しい

同じ関数名で再度定義すると下記エラーが出ることは前々から承知はしているのですが、事情があって関数名を変えられません。
「Fatal error: Cannot redeclare」




●質問者: php-beginner
●カテゴリ:ウェブ制作
✍キーワード:hoge PHP エラー 事情 定義
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● goog20090901
●14ポイント

コメントアウトする

◎質問者からの返答

上書きをしたいのです。

事情があり既存の関数には手を加える事ができません。


2 ● b-wind
●26ポイント

PHP: runkit_function_redefine - Manual

標準ではないけど、出来無くはないようだね。

もちろんあまり好ましい方法ではないが。

◎質問者からの返答

やはり標準では難しいですかね・・・。


3 ● standard_one
●40ポイント ベストアンサー

事情がどういうものか、どの程度の縛りがあるのかを詳しく教えていただかないと判断の付かない部分もありますが、可変関数でどうにかなりませんか?

function func1()

{

echo "1";

}

function func2()

{

echo "2";

}

$a = NULL;

$b=1;

if($b){

$a="func1";

}else{

$a="func2";

}

$a(); // 呼び出す部分は常にこう

?>

◎質問者からの返答

可変関数という物を始めて知りました!

こういう方法があるんですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ