包括Gloobal变量内部函数php

时间:2017-01-04 13:35:55

标签: php function global-variables

我试图在php中的函数内包含globals变量,但有些东西不起作用。

试过但不能工作:

$row = fetch_row("SELECT id,name FROM $GLOBALS['var'] where id = $id");
or
$row = fetch_row("SELECT id,name FROM `$GLOBALS['var']` where id = $id");
or
$row = fetch_row("SELECT id,name FROM '$GLOBALS['var']' where id = $id");
or
$row = fetch_row("SELECT id,name FROM $GLOBALS[\"var\"] where id = $id");

3 个答案:

答案 0 :(得分:5)

当您使用" "时,您可以在字符串中包含变量,但是,因为您尝试访问数组值,这将引发错误。

在这种情况下你可以做的是连接字符串或将变量包装在{ }中。

所以这个:

"SELECT id,name FROM " . $GLOBALS['var']. " where id = $id"

"SELECT id,name FROM {$GLOBALS['var']} where id = $id"

此外,此时您实际上并不在函数内部,只是将该字符串传递给它。

希望这有帮助!

答案 1 :(得分:2)

正如variable scope in PhP文档中所述,脚本中的变量不会与其功能共享。

您需要使用org.apache.hadoop.mapred.TextInputFormat.getSplits关键字手动包含它们,然后是您需要在函数内处理的变量。我将复制/粘贴同一页文档的示例,因为它非常清楚它发生了什么:

global

将回应:

<?php
    $a = 1;
    $b = 2;

    function Sum()
    {
        global $a, $b;

        $b = $a + $b;
    } 

    Sum();
    echo $b;
?>

该函数使用了3 $a的值,这些值已在函数外部设置。如果您没有使用行$b,则会发出错误,指出无法找到这些变量。

答案 2 :(得分:0)

它不起作用,您必须声明要访问的全局变量 使用global关键字。和变量的字符串格式。

global $var;

声明后,您可以使用以下查询:

fetch_row("SELECT id,name FROM  {$GLOBALS['var']} where id = $id");

PHP Manual Link for Global variable

对于可变范围,您可以看到此Link