2017-09-15 134 views
2

當我運行這個頁面時,它會顯示:Undefined variable: db如何使用validate()函數內的db.php中的$ db?如何從函數內的require'db.php'文件獲取變量?

<?php 

    require_once 'global.php'; 
    require 'db.php'; 

    function validate($user,$pass) { 

     $users=array(); 

     $result=$db->query('SELECT username,password FROM users'); 

     ... 
    } 

回答

2

使用全局關鍵字是不好的做法。而是將數據庫變量作爲參數傳遞。

function validate($db) { 

} 

而且由於您使用的是類,您可以利用面向對象的編程功能。意思是你只需要初始化數據庫連接一次,雖然構造功能

class myDb { 

var $db; 
function __construct($db){ 
    $this->db = $db 
} 

function validate(){ 
//you can access database using $this->db 
$result=$this->db->query('SELECT username,password FROM users'); 
} 

} 
2

你可以添加全局變量的作用域自己的函數中:

<?php 
    require_once 'global.php'; 
    require 'db.php'; 

    function validate($user,$pass) { 
     global $db; 

     $users=array(); 

     $result=$db->query('SELECT username,password FROM users'); 

     ... 
    } 

退房手動:http://php.net/manual/en/language.variables.scope.php