[PHP-users 31581] 関数の多重定義を行っても実行可能にする方法
Satoshi Kanno
kanno @ connect-tech.co.jp
2007年 2月 28日 (水) 11:05:38 JST
菅野と申します。
よろしくお願い致します。
関数の多重定義に関してなのですが、
ソースコードを見ると確かに同じ名前の関数が二重に定義されているのに、
エラーも発生せず、プログラムが実行できている、ということが発生しています。
ちょっとそのソースコード自体を載せるわけにはいかないため、
以下に、できるだけ再現したソースコードを示します。
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 の設定など)
ご存知の方いらっしゃいましたらご教示ください。
よろしくお願い致します。
--
菅野 聡 satoshi kanno
kanno @ connect-tech.co.jp
株式会社 コネクトテクノロジーズ 札幌支社 UX事業グループ
PHP-users メーリングリストの案内