玩转PHP:灵活的函数传参技巧 - 变量函数、递归调用与内置函数详解
最编程
2024-07-20 22:27:38
...
参数传递
1)按值传递参数
按值传递参数,我们在参数传递的时候默认的就是使用这个方式,
对形式参数的操作根本不影响实际参数的值,两者没有联系
function test($a){
echo ++$a; //因为a++中的++是在输出后执行与printout一样原理,所以要用++a
}
$i=100;
echo test($i)."<br/>"; //101
echo $i."<br/>"; //100 代入的实际参数值100不受影响
echo $i; //100
2)按引用传递参数
按引用传递参数,相当于形式参数和实际参数指的是同一个人,只是名字不一样,
对形式参数的操作会直接影响到实际参数(变量)
function test(&$a){
echo ++$a;
}
$i=10;
test($i); //11
echo'<br/>'.$i; //11
3)函数的默认参数
可以给形式参数设置默认值,设置方法直接赋值即可
如果没传值则按默认值进行计算,如果传值则按传的值进行计算
给形式参数加默认值的时候是从右往左加的,右边的必须有,才能给左边的加
//例子1
function test($a=10){ //参数的默认值
echo ++$a;
}
test(); //11
//例子2
function test($a=10){
echo ++$a;
}
test(20); //21
function test($a=20,$b=10){
echo $a+$b;
}
test(); //可以两个都用默认值都不传
function test($a=20,$b=10){
echo $a+$b;
}
test(25); //35
/* 情况2 */
function test($a,$b,$c=1){
echo $a+$b+$c;
}
echo test(2,3); //6
4)可变长度参数列表
php提供的,可以直接使用
这三个函数可以使用在我们自定义函数内部,能够返回给我们关于此参数的信息
func_get_args();
func_get_arg();
func_num_args();
<?php
function test(){
var_dump(func_get_args()); //显示所有参数信息
var_dunp(func_get_arg(4)); //查看第4个参数
var_dump(func_num_args()); //返回参数个数
}
test(21,323232,4343,'单位取得','dmmcc');
?>
“<br/>”在php网页中可以显示换行,
<br/>在在html文件中可以不加双引号
可变函数(变量函数)
把一个函数赋值给一个变量
function test(){
echo '我是test函数';
}
$a='test'; //把函数名加上引号赋值给变量
$a(); //test(),调用函数
可变函数不能用于例如 echo(),print(),unset()...
递归函数
在函数内部自己调用自己的函数
1)函数在被调用的执行过程中会在内存里分配空间用于存储临时数据,那么函数在执行过程中默认之
间时没有联系的(除了静态变量、按引用传、全局变量),里面的变量默认都是全局变量,相互之间没有影响
2)递归函数,在函数的内部需要适时结束函数运行的条件
<?php
function test($n){
echo $n.' ';
if($n>0){
test($n-1);
}
else{
echo'<-->';
}
echo $n.' ';
}
test(3); // 3 2 1 0 <-->0 1 2 3
?>
内部函数
比如,
echo()
include()
include_once()
require()
require_once()
上一篇: 在Linux中如何找到并定位php.ini配置文件?
下一篇: 如何用PHP的递归函数深入遍历数组