<?php
function a(){
$a = "hello";
function b(){
global $a;
echo $a . " World";
}
b();
}
a();
?>
这是我的代码,它只是回声&#34;世界&#34;甚至我使用global关键字来包含$ a。为什么呢?
答案 0 :(得分:4)
您必须告诉您要使用的outer scope中的哪个变量。
<?php
function a(){
$a = "hello";
function b() use ($a){
echo $a . " World";
}
b(); }
a();
?>
答案 1 :(得分:0)
在呼叫功能b之后首先发出呼叫。如果你在函数b中传递参数或在函数中设置为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();
?>
答案 2 :(得分:0)
请注意,默认情况下,变量不会传递给函数,除非另有说明,例如: 使用
function a($b){ //code }
而非
function a(){ //code }
我认为这可能是你所面临的问题。