php - 函数调用期间的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 可以读取函数内部设置的全局变量,但是如果我调用该函数,我会收到“未定义变量”错误。
解决方案
你有范围问题。$var1
仅在函数内部可用。在函数外部声明$var2
,然后您可以将其用作参数发送到函数。
推荐阅读
- typescript - WebStorm 中的 Nuxt webpack 别名
- c# - 关于在 char 数组中读取土耳其字符的问题
- java - 大 ArrayList 分解成批次
- ruby-on-rails - 将 nonce 传递给服务器并返回到 Braintree SDK
- php - yield 产生语法错误,意外 (T_VARIABLE)
- angular - 如果我在显示警告消息(需要 typescript@'>=2.7.0 <2.8.0')时继续处理我的 Angular 项目,我会遇到问题吗?
- c# - C# 中的 JSON 对象字符串,如何从 C# 中的以下 JSON 对象获取文章 URL
- php - 从 PHP 中的信号编号获取信号名称
- c# - 带有 SQL Server LocalDB 的 Winform 应用程序变得无响应
- reactjs - 在 Google Kubernetes Engine 中出现 crashloopbackoff 错误