php - 如何在函数内的数组中使用变量?

标签 php mysql connect mysql-connect

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/

相关文章:

node.js - req.session 通常在路由中未定义(connect-redis 用作存储)

authentication - 如何在 Sourcetree 中与 Github 建立基本连接

database - 无法使用 Play Framework 2.2.2 连接到远程 Heroku Postgres 数据库

mysql - 获取 MySQL 查询的最后 n 个结果,但在 CakePHP 中

php - MySQL事务: queries committed anyway

php - 在 PHP mysql_query() 中一次运行两个 MySQL 查询

php - LARAVEL - 显示存储文件夹中的图像

PHP - 从数据库中获取某个单词不在特定文本中的行

PHPMailer 生成 PHP 警告 : stream_socket_enable_crypto(): Peer certificate did not match expected

php - 如何强制 SimpleXML 忽略 HTML 标签?