Config.php:
$settings = array();
$settings['mysqlhost'] = 'localhost'; // Mysql hostname
$settings['mysqluser'] = '**'; // Mysql username
$settings['mysqlpass'] = '**'; // Mysql password
$settings['mysqldatb'] = '**'; // Mysql database
functions.php:
include_once('config.php');
function si_connect_db(){
$connection = mysql_connect($settings['mysqlhost'], $settings['mysqluser'], $settings['mysqlpass']);
$selectdb = mysql_select_db($settings['mysqldatb'], $connection);
if($connection){
if($selectdb){
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
现在,当我做例如:
include_once('functions.php');
si_connect_db();
我没有连接...该怎么办?
最佳答案
默认情况下,在函数外部声明的PHP变量在函数内部不可见。
如果在函数外部声明变量,并且希望在该函数内部可见该变量,则必须使用global
关键字:
function si_connect_db(){
global $settings; // Make $settings visible inside the function
$connection = mysql_connect($settings['mysqlhost'], $settings['mysqluser'], $settings['mysqlpass']);
$selectdb = mysql_select_db($settings['mysqldatb'], $connection);
...
有关更多信息,请查看手册的Variable scope部分。
关于php - 如何在函数内的数组中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127256/