一、函数的作用域
1.默认状况下,在PHP中,函数运行时有其自己独立的变量空间,函数体内的变量与外界的变量无关,即使时变量的名字相同。
2.内部的变量叫做“局部变量”,外部的变量叫做“全局变量”。
3.函数调用结束后,申请的独立的“调用空间”就会被释放掉,下次再调用时,再次申请,函数还得从头初始化。
二、函数的执行权
1.当调用函数的时候,程序的执行权进入到函数内部。
2.当函数语句运行完之后,执行权就会交回。或者是碰到return之后,函数也会交回执行权。
三、函数的返回值
1.调用函数的返回值,即是return的值,如果没有return语句,或者“return;”,则返回值是NULL。
2.思考:函数可不可以如turn回来两个值?
答:不可能,函数的定义就决定了不可以。从数学上看,一组确定的参数,只能得到一个确定的函数结果;从程序上看,"return
值1;"之后,函数结束,也不可能再return第二个值,
四、动态函数
1.即"函数的名字"可以用变量来表示。
<?php
function foo()
{
foo1();
foo2();
}
function foo1()
{
echo 'Hello ';
}
function foo2()
{
echo 'World!';
}
foo();
?>
五、引用传参
<?php
$age=5;
echo $age,'<br />';
function foo3(&$num)
{
$num+=5;
}
foo3($age);
echo $age,'<br />';
?>
上面这个例子中,函数内部的$num指向外部的一个全局变量的地址,因此$num变化时,影响了外部的$age也变。
同时,我们也可以知道:函数局部内的变量和全局的变量,并不是水火不容的,是有机会相互影响的。比如上面的“引用传参”,以及
“超全局变量”。
六、超全局变量
1.一般情况下,页面内声明的“普通全局变量”在函数内访问不到,但是“常量”在函数能访问到;还有一类变量——超级全局变量,无
论时多深层的函数内,还是以后的对象的方法体内,都可以直接访问到。
2.九大超级全局变量(全大写)
(1)$_GET :可用于收集提交 HTML 表单 (method="get") 之后的表单数据。$_GET 也可以收集 URL 中的发送的数据。
(2)$_POST :广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
(3)$_REQUEST:用于收集 HTML 表单提交的数据。
(4)$_FILES :通过 HTTP POST 方式上传到当前脚本的项目的数组。
(5)$_COOKIE :通过 HTTP Cookies 方式传递给当前脚本的变量的数组。
(6)$_SESSION:当前脚本可用 SESSION 变量的数组。
(7)$_ENV :通过环境方式传递给当前脚本的变量的数组。
(8)$_SERVER :这种超全局变量保存关于报头、路径和脚本位置的信息。
(9)$GLOBALS :这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为$GLOBALS[index]的数组中存储了所有全局变量。变量的名字就是数组的键。