自学php-函数

来源:互联网 发布:java object转换date 编辑:程序博客网 时间:2024/06/13 04:00

PHP函数:函数就是将一些重复使用到的功能写在一个独立的代码块中,在需要时单独调用。

创建函数的基本格式为:

function fun_name($str1,$str2......){ fun_body;    }

function:自定义函数的时候必须使用的关键字

fun_name:自定义函数的名称

$str1.......:函数的参数

fun_body:函数的主体,功能实现的部分

函数的调用:引用函数的函数名,并赋予正确的参数即可    实例:

<?php
function example($num){//声明自定义的函数
return "$num * $num =".$num * $num;//返回计算的结果
}
echo example(10);   //调用函数并为其传入参数
?>

输出结果为:10*10=100

在函数间传递参数:调用函数时候需要向函数传递参数,被传入的参数为实参,而函数定义的参数为形参,参数传递的方式有:按值传递,按引用传递和默认传递3种。

1.按值传递:将实参的值复制到相应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。   实例:

<?php
function example($m){    //定义函数输入形参
$m=$m*5+10;   

        //输出形参的值
echo "在函数内:\$m=".$m;
}
$m=10;    //函数外定义实参
example($m);   //调用函数 传入实参
echo "<p>在函数外 \$m=$m</p>";   //输出实参的值
?>

输出结果为:

在函数内:$m=60

在函数外 $m=10

按引用传值方式:将实参的内存地址传递到形参中,这时在函数内部的所有操作都会影响到实参的值,返回后,实参的值发生改变,引用传递就是在元基础上加&即可   实例:

<?php
function example(&$m){   //使用引用传值
$m = $m * 5 + 10;
echo '在函数内$m='.$m;
}
$m = 1;
example($m);
echo '在函数外$m='.$m;
?>

输出的结果为:

在函数内:$m = 15

在函数外:$m = 15

默认参数(可选参数):可以指定某个参数为可选参数,将其放在参数列表的末尾,并且指定其默认为空。需要注意的是:当使用默认参数时,必须放在非默认参数的右侧,负责函数可能出错

实例:

<?php
function value($price,$tax=""){          //设置$tax为可选参数
$price=$price+($price*$tax);
echo "价格:$price<br>";
}
value(100,0.25);   //为可选参数赋值
value(100);//不为可选参数赋值
?>

输出结果为:

价格:125
价格:100

变量函数:定义变量,将函数的名称赋值给变量,通过在变量名后加()的方式调用函数    实例:

<?php
//定义三个函数
function come(){
echo "来了<p>";
}
function go($name = "jack"){
echo " $name 走了<p>";
}
function back($string){
echo "又回来了,$string<p>";
}
$func = "come";  //定义一个变量,赋值为come
$func();   //使用变量函数来调用函数come()   以下类似
$func = "go";
$func("tom");
$func = "back";
$func("lily");
?>   通过改变变量名实现函数的调用,在变量名后加一个(),php将自动寻找与变量同名的函数,并且执行,找不到则报错,这个技术可以用于实现回调函数和函数表等

对函数的引用:引用不仅可以用于普通变量,函数参数,也可以作用于函数本身,对函数的引用就是对函数返回结果的引用  实例:

<?php
function &example($tmp=0){    //定义函数引用
return $tmp;    //返回参数$tmp
}
$str = &example("看到了");  //声明函数的引用$str
echo $str."<p>";//输出$str
?>

输出结果为:看到了

注意:和传递参数不同,这里两个地方都要使用&符号,用来说明返回的是一个引用

取消引用:不再需要引用的时候就可以使用unset()取消引用,它只是断开了变量名和变量内容之间的绑定,而不是销毁变量内容

实例:

<?php
$num = 1234;
$math = &$num;  //声明一个对变量$num的引用$math
echo '$math is:'.$math."<br>";  //输出引用$math
unset($math);  //取消引用$math
echo '$math is:'.$math."<br>";//再次输出引用
echo '$num is:'.$num."<br>";//输出原变量
?>

输出结果为:

$num is:1234

$math is:
$num is:1234    可以看出取消引用后对原变量的值没有影响







0 0