【发布时间】:2012-02-24 08:04:30
【问题描述】:
有没有办法在函数之外包含一个文件并让它工作?
即。我有一个文件 db.inc.php,其中包含我的数据库连接字符串:
switch (DB_TYPE) {
case MYSQL :
try {
$DBH = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . "", DB_USER, DB_PASS);
$DBH -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Error in Connection" . $e -> getMessage();
}
}
现在我在我的函数文件functions.php中需要这个文件:
require('db.inc.php')
function add() {
$n = $DBH -> prepare("");
$n -> execute((array)$s);
}
因此文件已正确添加,但我的函数无法访问 $DBH 句柄。仅当我在函数中包含文件时:
function add(){
require('db.inc.php')
....etc....
}
我的功能会起作用吗?
由于我将在许多文件中至少有 4-5 个函数,是否有可能只在函数之外需要它并让函数工作?
感谢和问候
【问题讨论】:
-
你的目标会产生大量难以测试的重复代码。只是说,技术上可以按照您的要求去做,问题是您真的想要这样做吗?