函数参数
获取函数参数个数
func_num_args()
实例:
function test(){
echo func_num_args();
}
test(1,2,3,4); // 4
获得函数传入参数数组
func_get_args()
实例:
function test(){
echo func_num_args();
}
test(1,2,3,4); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
变量
局部变量
动态
- 可以在函数内部被调用,外部不能访问
- 运行完就被释放掉
静态
- 外部调用时会检查是否存在变量,
若无执行赋值,如有不执行赋值操作
- 运行完,还会驻留在内存中
实例:
function test2(){
static $b = 2;
$b++;
echo $b,'<br/>';
}
test2(); //3 进行了赋值操作,然后加1,留在内存中
test2(); //4 没有执行赋值语句,直接加1
全局变量
数内使用 使用global关键字声明,
如果在函数内做赋值操作,会影响它的值
值传递 && 引用传递
以下结论,不作用于对象!!
引用传递
先来看一个例子:
$a = 3;
function change1($c){
$c = 5;
}
change2($a);
echo $a; // 3
在小例子里,最终打印结果还是3。
因为传入的参数,其实是$a的引用地址,并不是真正的的$a
。
但echo语句打印的,还是内存中的$a
,所以还是3。
值传递
再来看一个例子:
function change2(&$c){
$c = 5;
}
change2($a);
echo $a; // 5
在这里例子里,最终打印结果为5。
这里使用了 &
它可以找到$a真正的地址,而不是得到一个引用地址。