我有一个简单的问题,但我似乎无法解决它。我有一个配置文件,包含格式为:
的变量$config['something'] = 'value';
这个文件包含在index.php中,我还有一个__autoload函数。一切正常,配置文件在index.php中可用(我可以输出每个值),当我启动一个类或调用一个静态对象时,自动加载器完成这项工作。
问题是我尝试将这些配置值用作我加载的类中的参数,并且每个都得到“undefined variable:config”错误。我做错了什么?
的config.php
$config['item1'] = 'value1';
$config['item2'] = 'value2';
$config['item3'] = 'value3';
index.php
require_once('config.php');
function __autoload()...
class.mysql.php
function connect() {
mysqli_connect($connect['host'] etc.
...
显然,上面是我正在做的简化版本来说明文件之间的关系。如何让config.php中的变量在自动加载的类中可用?
谢谢!
答案 0 :(得分:0)
您面临范围问题,在函数外部创建的变量在其中无法访问,并且函数内部的变量创建在其外部无法访问。
此处有更多信息:PHP Variable Scpope
您有两种解决方案:
<强>的index.php 强>
require_once('config.php');
function __autoload($config)...
<强> class.mysql.php 强>
function connect($config) {
mysqli_connect($connect['host'] etc.
查看实际操作:http://3v4l.org/RYfc0
<强>的index.php 强>
require_once('config.php');
function __autoload()...
<强> class.mysql.php 强>
function connect() {
//If you want to use the $config variable here
global $config;
mysqli_connect($connect['host'] etc.
查看实际操作:http://3v4l.org/ES4ej
我个人更喜欢使用第一个解决方案,因为它可以帮助我更轻松地了解$config
变量的来源