php全局变量如何使用-PHP问题

资源魔 34 0

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使用问题 全局变量

抱歉,评论功能暂时关闭!