[英]how to use a variable outside a function
我有一個名為init.php
初始化文件,我為mysqli
連接聲明了一個名為$db
的變量。 下面是我的代碼。
<?php
ob_start();
session_start();
define('DBHOST', '127.0.0.1');
define('DBUSER', 'root');
define('DBPASSWORD', '');
define('DBNAME', 'mydb');
$db = new mysqli(DBHOST, DBUSER, DBPASSWORD, DBNAME);
if ($db->connect_error) {
header('Location: 404.php');
}
require_once 'functions/User.php';
require_once 'functions/Sanitize.php';
如您所見,我在功能文件夾中需要User.php
,在User.php
文件中我有此代碼
<?php
function login($idnumber, $username, $password) {
$idnumber = sanitize($idnumber);
$username = sanitize($username);
$password = sanitize($password);
$hashed_password = get_hashed_password($username);
}
function get_hashed_password($username) {
$username = sanitize($username);
$sql = "SELECT `password` FROM `users` WHERE `username` = ?";
$stmt = $db->prepare($sql);
if(!$stmt) {
echo 'invalid sql statement';
}
die();
}
在get_hashed_password()函數上,我使用了$db
變量,但收到一條錯誤消息,提示
Notice: Undefined variable: db in D:\xampp\htdocs\sample\functions\User.php on line 15
Fatal error: Call to a member function prepare() on a non-object in D:\xampp\htdocs\sample\functions\User.php on line 15
有人可以幫我如何在任何函數中使用變量$ db嗎? 提前致謝!
調用$ db為全局
function get_hashed_password($username) {
global $db;
//...
}
您可以在函數內部使用$GLOBALS
這樣的
$your_var = "something";
function abc()
{
$your_var = $GLOBALS['your_var'];
}
更新2:
function get_hashed_password($username) {
$username = sanitize($username);
$sql = "SELECT `password` FROM `users` WHERE `username` = ?";
$db = $GLOBALS['db'];
$stmt = $db->prepare($sql);
if(!$stmt) {
echo 'invalid sql statement';
}
die();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.