倪帮助理解! PHP函数

时间:2015-01-20 10:16:54

标签: php function

我是php的新手,无法理解下面的逻辑。

<?php
$user = "abc";
function test(){
$user = "def";
echo $user;
}
function test_2(){
$user = "xyz";
return $user;
}
echo $user;
echo "<br />";
test();
echo "<br />";
echo test_2();
echo "<br />";
echo $user;
?>

当“echo-ing”$ user时,函数test_2()会覆盖$ user的值并打印“xyz”。但是当我简单地回显$ user [在echo test_2()之后),但是它打印出“abc”;我的意思是它应该再次打印“xyz”作为对象$ user存储值“xyz”。你能解释一下这里的功能机制是如何运作的。

3 个答案:

答案 0 :(得分:0)

此练习显示变量$ user仅限于其范围。 例如,在test()的范围内,变量$ user是“def”,而在test_2()的范围内,变量$ user是“xyz”。

答案 1 :(得分:0)

用非常基本的话说 - 原因是因为你的函数没有返回任何值。 这就是为什么你的变量$ user没有改变,并且它保持与开头定义的相同的值。 功能是在他们自己的环境中起作用的单独操作“

希望这有帮助

答案 2 :(得分:0)

Php是一种松散耦合的语言。它意味着您不需要声明数据类型,并且在运行时也可以更改实例的值。第一个$用户将打印为&#34; abc&#34;。一旦你调用了test()函数,它就会分配值&#34; def&#34;到$ user。因此你返回了$ user,所以test()会将reslt作为&#34; def&#34;。当你调用test2()函数时,上面的步骤将继续,它将返回值为&#34; xyz&#34;。