[PHP-users 31587] Re: 関数の多重定義を行っても実行可能にする方法
YuGo
yu.gotou @ gtec-ni.com
2007年 2月 28日 (水) 12:45:51 JST
YuGoと申します。
エラーなしで実行させるのは難しそうです。
逆にお聞きしたいのですが、二つの同一名関数のどちらが実行されるのですか?
Satoshi Kanno wrote:
> 菅野と申します。
> よろしくお願い致します。
>
>
> 関数の多重定義に関してなのですが、
> ソースコードを見ると確かに同じ名前の関数が二重に定義されているのに、
> エラーも発生せず、プログラムが実行できている、ということが発生しています。
>
> ちょっとそのソースコード自体を載せるわけにはいかないため、
> 以下に、できるだけ再現したソースコードを示します。
>
> main.php ---
> <?
> require_once('lib1.php');
> require_once('common.php');
>
> function main() {
> redeclare_function();
> echo 'executed.';
> }
>
> main();
> ?>
> ---
>
> common.php ---
> <?
> require_once('lib2.php');
> ?>
> ---
>
> lib1.php ---
> <?
> function redeclare_function() {
> // 二重定義関数その1
> }
> ?>
> ---
>
> lib2.php ---
> <?
> function redeclare_function() {
> // 二重定義関数その2
> }
> ?>
> ---
>
> 以上の状態でも、実行結果が出てしまいます。
>
> いくつか同じソースコードを持つマシンがあり、
> Fatal error: Cannot redeclare ...
> とエラーが出るものもあります。
> (普通はこう出ると思うのですが・・・)
>
>
> 何か、関数の二重定義を行っても
> エラーを出さず、実行結果も出すことが可能な方法などあるでしょうか?
> (PHP の設定など)
>
> ご存知の方いらっしゃいましたらご教示ください。
> よろしくお願い致します。
>
>
PHP-users メーリングリストの案内