Php 函数中的全局变量
我对函数中的全局变量有问题Php 函数中的全局变量,php,function,variables,global,Php,Function,Variables,Global,我对函数中的全局变量有问题 <?php function main(){ $var = "My Variable"; function sub() { GLOBAL $var; echo $var; // Will show "My Variable" } sub(); echo $var; // Will show "My Variable"
<?php
function main(){
$var = "My Variable";
function sub() {
GLOBAL $var;
echo $var; // Will show "My Variable"
}
sub();
echo $var; // Will show "My Variable"
}
main();
sub(); // Will not show and I will sub() cant use outside main() function
?>
$var
sub()
我绑定到使用
全局
,但它没有显示任何内容。。。有吗?您没有将值分配给全局范围变量$var
只有
main()
为名为$var
的变量赋值,但只在main()
的范围内赋值。只有main()
的echo$var代码>实际打印值。对sub()
的两个调用都不会产生输出。
试一下
<?php
function main(){
$var = "My Variable";
function sub() {
GLOBAL $var;
echo 'sub: ', $var, "\n";
}
sub();
echo 'main: ', $var, "\n";
}
main();
sub();
请阅读;-) 不确定我是否理解您想要什么,但您的$var
不是全局的。它是main()中的局部变量
变量只有在函数或类之外声明时才是全局变量
<?php
$var = "My Variable"; // made $var global
function main(){
//removed $var here
function sub() {
global $var;
echo $var; // Will show "My Variable"
}
sub();
echo $var; // Will throw notice: Undefined variable: var
}
main();
sub(); // Will show "My Variable"
?>
为什么要在方法中声明一个方法来从那里调用它
也许这就是你想要的
<?php
//$var = "My Variable";
function main(){
$var = "My Variable";
$sub = function($var) {
echo "sub: ".$var; // Will show "sub: My Variable"
};
$sub($var);
echo "main: ".$var; // Will show "main: My Variable"
}
main();
// sub(); // Will not work
// $sub(); // Will not work
?>
在函数外部定义变量?是的,在main()
@NullPointerAll函数外部和main()
内部的所有变量在main()
@nullpointer()外部不起作用。我不确定您在这里要做什么。@rink.attendant.6好的,我将展开,只是一个minOk,在您的示例中,我将输出为“sub:My Variable,main:My Variable,sub:“1.最后一行sub()
将不起作用,因为这个函数在main()
之外。是的,它将显示全局$var的内容,它没有赋值,因此输出为空。谢谢,我认为最后一行对我来说没问题。”
<?php
//$var = "My Variable";
function main(){
$var = "My Variable";
$sub = function($var) {
echo "sub: ".$var; // Will show "sub: My Variable"
};
$sub($var);
echo "main: ".$var; // Will show "main: My Variable"
}
main();
// sub(); // Will not work
// $sub(); // Will not work
?>