多年来我做过这样的事情:
的config.php
<?php
$db = array("user" => "username", "pass" => "password");
的functions.php
<?php
require_once('config.php');
function connectToDatabase() {
$dbc = new PDO($dsn, $db['user'], $db['pass']);
// Do some stuff ...
}
我刚刚阅读了PHP手册和SHOULDNT的工作,但多年来它已经有了。是否有任何服务器配置允许它工作?
我刚刚编写了一个新脚本并收到错误。 $ db数组甚至没有初始化。
答案 0 :(得分:3)
确实,connectToDatabase
函数开头的范围内有无变量。您也应该收到有关未声明变量的警告。也许它是有效的,因为数据库安装的配置导致它使用默认用户名和密码?
答案 1 :(得分:0)
实际上这应该永远不会工作,即使在较旧的PHP版本中也不能用register_globals
。
要将全局变量导入函数,需要global $varname;
语句,或将变量传递给函数(通常更可取,如globals are bad)。唯一的例外是超级球。
你是否1000%确定它不是这样的:
function connectToDatabase() {
require_once('config.php');
$dbc = new PDO($dsn, $db['user'], $db['pass']);
// Do some stuff ...
}