我有3个php文件 index.php文件包含以下代码
<?php
include ('file1.php');
include ('file2.php')
?>
file1.php包含
function aa(){
sleep(5);
return 2;
}
function bb(){
sleep(5);
return 1;
}
echo bb();
echo aa();
setStartTrigger($AutoID,3,$db_automation);
file2.php包含相同的功能
function aa(){
sleep(5);
return 2;
}
function bb(){
sleep(5);
return 1;
}
echo bb();
echo aa();
setStartTrigger($AutoID,3,$db_automation);
输出返回错误
Fatal error: Cannot redeclare aa() (previously declared in C:\xampp\htdocs\automation_kickoff\file2.php:3) in C:\xampp\htdocs\automation_kickoff\file1.php on line 5
我想要一些不改变任何功能名称的东西
答案 0 :(得分:1)
在php中无法覆盖您之前声明的函数。所以你应该考虑把它们放在课堂上并重新思考你的设计模式。
如果您愿意,可以尝试使用名称空间 - http://php.net/manual/en/language.namespaces.basics.php
答案 1 :(得分:1)
您可以从PHP 5.3开始使用命名空间。
file2.php
namespace A;
function aa(){
sleep(5);
return 2;
}
function bb(){
sleep(5);
return 1;
}
namespace {
echo A\bb();
echo A\aa();
setStartTrigger($AutoID,3,$db_automation);
}
和file2.php
namespace B;
function aa(){
sleep(5);
return 2;
}
function bb(){
sleep(5);
return 1;
}
namespace {
echo B\bb();
echo B\aa();
setStartTrigger($AutoID,3,$db_automation);
}