[英]Use external included file inside php functions
我正在写一个functions.php文件...现在,某些函数必须访问数据库。 我有一个包含连接脚本的db_connect.php文件。 我已经将它包含在functions.php中,其中包括:
require "sys/db_connect.php";
但是如何在其中使用连接脚本($ con)
function a() {
...
}
function c() {
...
}
等等? 我已经尝试将$ con变量设置为全局变量,但是没有成功。
function a($db) {
//do something with $db
}
function c($db) {
//do something with $db
}
$result = a($conn);
$something = c($conn);
有三种方法可以执行此操作,或者使用$GLOBALS
访问值,将其声明为全局变量或将其作为参数传递
第一种方式:
include 'db_connect.php';
function a() {
$link = $GLOBALS['con'];
// you can assign $GLOBALS['con'] or use it as a normal variable
}
第二种方式:
include 'db_connect.php';
function a() {
global $con;
// then use it as a normal variable
}
第三种方式:
function a($con) {
// use the variable
}
在此处阅读有关变量范围的更多信息
这种结构应该起作用。 注意global
声明出现的位置。 我通常会将$ con变量作为参数传递给函数,而不是将其用作global
变量。
dbconnect.php
<?
$con = mysqli_connect("blah","blah","blah","blah");
?>
的functions.php
require('dbconnect.php');
function a() {
global $con;
...
}
function c() {
global $con;
...
}
我这样做:
// sys/db_connect.php
<?php
function db(){
return new mysqli('host', 'username', 'password', 'database');
}
?>
// functions.php
<?php
require 'sys/db_connect.php';
/* you can even close the connection and reopen it this way
$db = db(); $db->close(); $database = db(); */
function a() {
$db = db();
}
function c() {
$db = db();
}
?>
如果已在db_connect.php中的任何函数之外分配了变量$ con,则如下所示:
//----------
//sys/db_connect.php
//----------
$con = 'my connection script'; //You don't need to put global here
然后,您可以在另一个PHP文件中的函数a()和c()中使用$ con,如下所示:
//----------
//other_file.php
//----------
require 'sys/db_connect.php';
function a(){
global $con; //global allows $con from above to be used in this function a()
print_r($con); //This line just for testing purposes!
}
function b(){
global $con; //global allows $con to be used in this function b()
print_r($con); //This line just for testing purposes!
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.