首页 > 解决方案 > 函数调用期间的PHP全局变量错误

问题描述

我有以下功能:

<?php

function deffunc($param1, $param2)
{
    global $var1;
    $var1 = "firstvar";
    echo $param1;
    echo "\n";
    echo $param2;
}

$var2 = "secondvar";

deffunc($var1, $var2);

?>

调用该函数将为 $var1 返回一个“未定义的变量”,但我不明白为什么,因为它是全局的并且在函数的大括号内定义。但是,如果我在函数调用后使用 echo ,如下所示:

deffunc($var1, $var2);
echo $var1;

它将返回结果“firstvar”。我不明白为什么 echo 可以读取函数内部设置的全局变量,但是如果我调用该函数,我会收到“未定义变量”错误。

标签: phpvariablesglobal

解决方案


你有范围问题。$var1仅在函数内部可用。在函数外部声明$var2,然后您可以将其用作参数发送到函数。


推荐阅读