1、函数的定义和调用
function fun_name($str1, $str2,...$strn){
fun_body;
}
function:自定义函数时必须用到的关键字。
fun_name:自定义函数的名字。
$str1, $str2,...$strn:函数的参数。
fun_body:函数的主体,功能实现部分。
调用函数时,只需要调用函数名,并加上合适的参数即可。
<?php
/*声明自定义函数*/
function example ($num) {
return "$num * $num =". $num * $num;
}
echo example(10);
?>
输出结果:
10 * 10 =100
2、函数间传递参数
按值传递、按引用传递、默认参数。
按值传递:将实参的值复制到对应的形参中,在函数内部的操作是针对形参进行的,不影响实参的值
<?php
function example($m){
$m = $m*5+10;
echo "在函数内:\$m=".$m;
}
$m = 1;
example($m);
echo "<p>在函数外\$m=$m<p>";
?>
运行结果:
在函数内:$m=15
在函数外$m=1
按引用传递
将实参的内存地址传递给形参,这时在函数中操作的结果会影响到实参,返回后会影响到实参的值。
<?php
function example(&$m){
$m = $m*5+10;
echo "在函数内:\$m = ".$m;
}
$m = 1;
example($m);
echo "<p>在函数外:\$m = $m<p>";
?>
运行结果:
在函数内:$m = 15
在函数外:$m = 15
默认参数(可选参数)
自行设置参数,可以指定某个参数为可选参数。将可选参数放在列表的末尾,并制定默认值为空。
<?php
function values($price, $tax=""){//定义一个函数,其中一个参数初始值为空
$price = $price+($price*$tax);
echo "价格:$price<br>";
}
values(100,0.25);//可选参数赋值为0.25
values(100);//没有给可选参数。
?>
输出结果:
价格:125
价格:100
注意:默认参数放在非默认参数右边,防止函数出错。PHP5之后默认值可以通过引用传递
3、函数中返回值
函数将返回值传递给调用者的方式是使用关键字 return()。
使用return()关键字会终止脚本运行。
<?php
function values($price, $tax=0.45){
$price=$price+($price*$tax);
return $price;
}
echo values(100);
?>
输出结果:
145
return()只能返回一个值,若想返回多个值,需要定一个一个数组,将返回值存在数组中进行返回。
4、变量函数
<?php
function come(){
echo "来了<p>";
}
function go($name = "Jack"){
echo "$name 走了<p>";
}
function back($string){
echo "又回来了,$string<p>";
}
$func = "come";
$func();
$func = "go";
$func("Tom");
$func = "back";
$func("Lily");
?>
输出结果:
来了
Tom 走了
又回来了,Lily
5、对函数的引用
对函数的引用就是对函数返回值的引用。
<?php
function &example($tmp=0){
return $tmp;
}
$str = &example("看到了");
echo $str."<p>";
?>
输出结果:
看到了
注意:这里必须两个地方都使用&
6、取消引用
当不再需要引用时,可以取消引用。取消引用使用unset()函数,断开变量名变量之间的绑定,而不是销毁变量内容。
<?php
$num = 1234;
$math = &$num;
echo "\$math is:".$math."<br>";
unset($math);
echo "\$math is:".$math."<br>";
echo "\$num is:".$num;
?>
输出结果:
$math is:1234
$math is:
$num is:1234