【问题标题】:Make PHP global variable using a MYSQL query使用 MYSQL 查询创建 PHP 全局变量
【发布时间】:2020-12-21 20:07:34
【问题描述】:

我正在尝试将 WP 中的查询用作全局变量(是的,我知道尽可能避免使用这些查询,但这是我将一遍又一遍地引用的查询,所以对我来说,写出每个函数的相同查询)。我一定遗漏了一些东西,因为全局变量似乎不起作用。 我是如何定义变量的:

    $query =  $wpdb->get_results("SELECT columnn1, column2 FROM mytablename");

function query() {
  global $query;
        return $query;
    };

然后当我后来在一个函数中引用它时,我使用了:

fucntion xyz{
    $results = $query;
//does things
}

我做错了什么吗?它不工作。

编辑 1:

   $query =  $wpdb->get_results("SELECT columnn1, column2

FROM mytablename");

function query() {
  global $query;
        return $query;
    };

然后当我后来在一个函数中引用它时,我使用了:

fucntion xyz{
global $query
    $results = $query;
//does things
}

【问题讨论】:

  • 您可以使用 $GLOBALS['query'] 访问查询变量的全局值。假设你有一个函数,你想在其中使用查询变量 $query = "Some string"; function use_query_here() { global $query; $results = $query; //Use $results here now or you can use $query also directly but if will risk mutating its value <br /> }function use_query_here() { $result = $GLOBALS['query']; // Use $result variable here now }
  • 所以应该是 $results=$GLOBAL['query'] ?
  • 谢谢,上面的一切都是正确的,只是我没有在我想在其中使用它的函数中定义全局 $query,对吗?
  • 是的,global 关键字不是在全局范围内定义变量,而是在您想从函数内部的全局范围内访问某个变量时使用它
  • 我在上面编辑了我的设置方式。但它不工作,我的编辑 1,它应该如何工作?

标签: php global globalization


【解决方案1】:

试试这个

function query() use ($query) {
    // do something with global variable $query
    return $query;
};

【讨论】:

  • 谢谢。当你说 //do something with global variable $query 我在那里做什么?或者这是不是 $results = $query?
【解决方案2】:

您可以使用 $GLOBALS['query'] 访问查询变量的全局值。假设您有一个要在其中使用查询变量的函数

$query = "Some string"; 
function use_query_here() {     
    global $query;     
    $results = $query;     //Use $results here now or you can use $query also directly but if will risk mutating its value <br /> 
}

function use_query_here() {
    $result = $GLOBALS['query'];     // Use $result variable here now 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-25
    • 2023-01-29
    • 2016-10-25
    • 2016-09-03
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    相关资源
    最近更新 更多