包括相同的文件,但来自不同的目录

时间:2012-08-21 02:01:34

标签: php

我有问题;实际上我找不到任何解决方案。

我有一个名为cron_hourly.php的文件

这个文件做了一些任务,应该由cronjob运行;我拥有4个拥有4个不同数据库的站点,这些数据库具有相同的架构和结构; (4个站点几乎相同); 4个数据库的数据不同;

我需要为4个数据库运行此文件;它对数据库进行一些查询,然后通过电子邮件发送一些信息由于一些托管限制;我只能使用1个cronjob;所以我在4个不同的目录中有4个cron_hourly执行相同的任务,但是在不同的数据库中!所以他们有一些功能和变量;实际上它们是相同的,只是它们连接到不同的数据库! 问题是;当我尝试使用下面的代码时

     include 'path1/cron_hourly.php';
     include 'path2/cron_hourly.php';
     include 'path3/cron_hourly.php';
     include 'path4/cron_hourly.php';

我收到错误'无法重新声明someFunction()(之前在' 实际上这是有道理的,因为该函数已在其他目录的同一文件中声明。

相反;如果我使用include_once 只包含要包含的第一个文件而其他文件不运行! 有没有我可以解决这个问题?我想运行这四个文件而不会出现此错误! 顺便说说; if(function_exists())无济于事!因为正如我之前所说,我需要为每个文件反复重新声明函数..

1 个答案:

答案 0 :(得分:1)

您需要做的是使用命名空间,请点击此处:

http://php.net/manual/en/language.namespaces.rationale.php