[PHP-users 31597] Re: 関数の多重定義を行っても実行可能にする方法

小野浩一郎 k-ono @ mica.co.jp
2007年 2月 28日 (水) 20:05:35 JST


申し訳ないです。
単に読んでいただけなのに、操作ミスで間違って引用のみの
返信をしてしまいました。

これだけではなんですので...。

PHPのバグの可能性の話も出ているようですが、単に片方の
関数定義がパース対象になっていないだけってことはありま
せんか?

PHPの場合、同名関数がコード上に複数存在すればただちに
多重定義のエラーを出すわけではありませんので、片方がな
んらかの条件でパース対象外になっている場合は正常に動作
しますよね。もちろん、そんなコードが良いとは思えません
けど。

例えば、
<?
function foo(){
	....
}

if(false){
	function foo(){
	}
}
?>

挙げておられる例でも lib2.phpの redeclare_function
により前に exit などが行われているならエラーにならな
いはずです。
もちろん、common.phpでlib2.phpをrequireするより前に
exitした場合も同様でしょう。

既にお調べかとは思いますが、一応。



PHP-users メーリングリストの案内