php全局变量的应用办法:能够正在函数内经过global来申明该变量,代码为【$name = "why";function changeName(){global $name;$name = "what";}】。
php全局变量的应用办法:
一、全局变量的global的界说以及应用
最后,我的需要是这样的:
<?php $name = "why"; function changeName(){ $name = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
执行代码的后果是:my name is why,而没有是执行changeName()后显示what。剖析缘由,这是由于函数体changeName内$name变量被缺省设置为部分变量,$name的作用域就是正在changeName内。于是,修正代码,增加全局变量以下:
<?php global $name; $name = "why"; function changeName(){ $name = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
留意:不克不及正在用global申明变量的同时给变量赋值。像global $name = "why"的应用形式是谬误的。
界说全局变量后执行的后果依然为my name is why,这个后果让我受惊。原来,global的正确用法是:"正在一个函数中引入内部的一个变量,假如该变量不经过参数通报出去,那末就经过global引入出去。" 也就是说,当一个函数援用一个内部变量时,能够正在函数内经过global来申明该变量,这样该变量就能够正在函数中应用了(相称于当做参数通报出去)。那末,再次修正代码:
<?php $name = "why"; function changeName(){ global $name; $name = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
此次的运转后果是:my name is what,阐明global是起通报参数的作用,而并不是使变量的作用域为全局。再看上面的例子:
<?php $name = "why"; function changeName(){ global $name; $name = "what"; } function changeName2(){ $name = "where"; } changeName(); changeName2(); echo "my name is " . $name . "<br/>"; ?>
执行后果为:my name is what,假如正在changeName2()中增加global $name,运转后果则是:my name is where。
综上,global的作用就相称于通报参数,正在函数内部申明的变量,假如正在函数内想要应用,就用global来申明该变量,这样就相称于把该变量通报出去了,就能够援用该变量了。
除了了应用global参数界说外,还能够应用超全局变量$GLOBAL:
<?php $name = "why"; function changeName(){ $GLOBALS['name'] = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
二、global以及$GLOBAL
一个例子:
<?php $var1 = 1; $var2 = 2; function test1(){ $GLOBALS['var2'] = &$GLOBALS['var1']; } test1(); echo $var2 . "<br />"; $var3 = 1; $var4 = 2; function test2(){ global $var3,$var4; $var4 = &$var3; } test2(); echo $var4 . "<br />"; ?>
输入$var2的值为1,$var4的值为2,由于$var3的援用指向了$var4的援用地点。$var4的实际值并无扭转。民间的诠释是:$GLOBALS['var']是内部的全局变量自身,global $var是内部$var的同名援用或许指针。象征着$GLOBAL正在一个剧本的全副作用域中均可用,正在函数或办法中无需执行global $variable; 就能够拜访它们。与一切其余超全局变量没有同,$GLOBALS正在PHP中老是可用的。另外一个例子:
<?php $var1 = 1; function test1(){ unset($GLOBALS['var1']); } test1(); echo $var1 . "<br />"; $var2 = 1; function test2(){ global $var2; unset($var2); } test2(); echo $var2; ?>
输入后果是$var1没有存正在,而$var2的值为1。这就证实,$var2只是别号援用,自身的值不遭到任何的扭转。也就是说global $var其实就是$var = &$GLOBALS['var'],挪用内部变量的一个体名罢了!
想理解更多编程学习,敬请存眷php培训栏目!
以上就是php全局变量若何应用的具体内容,更多请存眷资源魔其它相干文章!
标签: php php教程 php故障解决 php使用问题 全局变量
抱歉,评论功能暂时关闭!