如何在PHP中全局访问对象

时间:2015-12-19 07:36:41

标签: php mysql

global $con;

我已将数据库连接对象保存在$ con变量中。

$con=mysqli_connect('localhost','username','password','database');

当我在功能中使用它时,它无法访问。 例如

function getnews($q){
    $q="SELECT * FROM News";
    mysqli_query($link,$q);
}

getnews()函数中,在函数参数中没有传递$link,我无法使用它。

我的问题是,如何使用$link对象而不将其作为参数传递给函数?

3 个答案:

答案 0 :(得分:3)

假设您的意思相同$con$link

回答你的问题:你必须在函数内部使用global $con;语句。然后它将全局变量导入到此函数的范围内,您可以在其中使用它。

然而我想指出,使用全局变量,以及没有捆绑在具有行为的类中的函数几乎总是不好的做法。

答案 1 :(得分:0)

您必须在使用变量的每个函数中使用global $con;。例如:

<?php

function init() {
    global $con;
    $con = "test";
}

function showCon() {
    global $con;
    var_dump($con);
}

init();
showCon();

答案 2 :(得分:0)

如果这里$ link是$ con并且您想在函数中使用它,那么需要执行以下操作

$con=mysqli_connect('localhost','username','password','database');

function getnews($q){
    $q= "SELECT * FROM News";
    global $con  // you need to declare $con as global so you can access it in function scope
    mysqli_query($con,$q);
}