【发布时间】:2019-03-29 22:51:43
【问题描述】:
我有以下功能:
<?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 可以读取函数内部设置的全局变量,但是如果我调用该函数,我会收到“未定义变量”错误。
【问题讨论】:
-
你必须在调用函数之前声明全局变量。
-
错误源于函数call
deffunc($var1, $var2);的范围内没有$var1你正试图从外面打开前门屋子里的钥匙…… -
嘿,只是跟进看看我的回答是否有帮助? :)