函数体现了代码的重用性;就是不用老是写同一个代码段;
1.函数的定义;
关键词:
function functionName(parameters){
code;
}
- <?php
- //定义函数Text;
- function Text(){
- echo "i'm the text"."<br />";
- }
- $ret = Text();
- //测试返回值;
- if (is_null($ret)){
- echo "null";
- }else{
- echo "$ret";
- }
- ?>
无带return 的函数 ,返回了一个NULL ,这是我测试的结果 ;
2.函数的参数;
1.按值传参
2.引用传参
- <?php
- $intT1 = 1;
- $intT2 = 1;
- //按传值传参
- function Test($can1,$can2){
- $can1++;
- $can2++;
- echo "\$can1 = $can1"."<br />";
- echo "\$can2 = $can2"."<br />";
- }
- Test($intT1,$intT2);
- echo "\$intT1 = $intT1"."<br />";
- echo "\$intT2 = $intT2"."<br />";
- // 结果为:
- // $can1 = 2
- // $can2 = 2
- // $intT1 = 1
- // $intT2 = 1
- // 即 形参改变了,但原来的变值量没有变;
- function Test1(&$can1,&$can2){
- $can1++;
- $can2++;
- echo "\$can1 = $can1"."<br />";
- echo "\$can2 = $can2"."<br />";
- }
- Test1($intT1,$intT2);
- echo "\$intT1 = $intT1"."<br />";
- echo "\$intT2 = $intT2"."<br />";
- // 结果:
- // $can1 = 2
- // $can2 = 2
- // $intT1 = 2
- // $intT2 = 2
- // 说明了,引用传参。原来的变量值也会改变
- ?>
默认参数值;
- <?
- //如果没有传参,则;为默认值 ;
- function Test($arg1 = 0; $arg2 = 0){
- }
- ?>
2.函数的返回值;
上面刚刚试过说,如果函数没有设置return 返回值,则返回null;所以我们可以用return 来设置返回值 ;
- <?
- function RetTest(){
- return 123;
- }
- ?>
也可以返回object等等;只要设置相应类型的变量接收;
返回多个值 ;比如说数组;
- <?
- function RetTest(){
- $user = array("the peo","the box","the text","the run");
- return $user;
- }
- list($arg1,$arg2,$arg3,$arg4) = RetTest();
- echo $arg1.$arg2.$arg3.$arg4;
- ?>
用list() 设置变量来接收返回多组值 ;
3.递归函数;即调用自身函数;(这方面小弟运用起来比较烂;大家百度发挥吧)
- <?php
- function Refunction($arg1){
- if ($arg1 == 10 ){
- return $arg1;
- }
- else
- return Refunction ($arg1+1);
- }
- $RET = Refunction(5);
- echo $RET;
- ?>
4 函数库;
把一些常用的函数写成一个文件,到需要的时候 ,要
include()或require;进来
- <?php
- //test2.php
- function addint ($arg1,$arg2){
- return $arg1+$arg2;
- }
- function jianint ($arg1,$arg2){
- return $arg1-$arg2;
- }
- ?>
- <?
- include "test2.php";
- $TestAdd = addint(1,2);
- echo $TestAdd."<br />";
- $Testjian = jianint(2,1);
- echo $Testjian;
- ?>
结果:
3
1
转载于:https://blog.51cto.com/happypang/1158807