<?php
function a(){
$a = "hello";
function b(){
global $a;
echo $a . " World";
}
b();
}
a();
?>
这是我的代码,它只回显"世界",即使我使用 global 关键字来包含$a。 为什么?
您必须从外部作用域中分辨出要使用的变量。
<?php
function a(){
$a = "hello";
function b() use ($a){
echo $a . " World";
}
b(); }
a();
?>
函数
A 在调用函数 B 后先调用 a。 如果在函数 b 中传递参数或在函数 a 中设置为 globel $a
在函数 a() 中设置为 globel $a,因为此变量在 finction b 中使用而不传递参数,并在函数 b 中设置 globel $a,因为未定义此变量此函数
<?php
function a(){
global $a;
$a = "hello";
function b(){
global $a;
echo $a . " World";
}
b();
}
a();
?>
或者您可以使用
<?php
function a(){
$a = "hello";
function b($a){
echo $a . " World";
}
b($a);
}
a();
?>
请注意,除非另有说明,否则默认情况下不会将变量传递给函数,例如用
function a($b){ //code }
而不仅仅是
function a(){ //code }
我认为这可能是你面临的问题。