php包含多个具有相同功能名称的文件

时间:2016-07-29 11:32:00

标签: php function include

我有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

我想要一些不改变任何功能名称的东西

2 个答案:

答案 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);
}