如何从require' db.php'中获取变量文件里面有一个函数?

时间:2017-09-15 11:56:07

标签: php

当我运行此页面时,它说:Undefined variable: db如何在validate()函数中使用db.php中的$ db?

<?php

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

    function validate($user,$pass) {

        $users=array();

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

        ...
    }

2 个答案:

答案 0 :(得分:2)

您可以在函数中添加全局变量scope:

<?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

答案 1 :(得分:2)

使用global关键字是不好的做法。而是将数据库变量作为参数传递。

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');
}

}