php函数的声明

php变量的范围 

    局部变量:在函数中声明的变量就是局部变量,只能在这家的函数内部使用。

    全局变量:在函数外声明,在变量声明后,只到整个脚本结算前都可以使用,包括在函数中和{}中都可以使用 

    php的变量分不出是声明还是使用,在php中使用全局变量要通过global关键字将这个全局变量包含到函数中才能使用到,在global之后才是使用全局的变量

    参数就是局部变量,这个局部变量可以在电泳是去赋值


php的静态变量

    静态变量值能声明在函数中(类中),不能在全局声明,使用static在变量前;

    作用:一个变量可以在通一个函数多次调用中同用。

  1. 静态变量在静态代码中保存
  2. 一个函数多次电泳更直间共用,但只能在第一次调用函数是声明到内存,以后在调用就不再声明,而直接使用变量函数

变量函数

如果一个变量后面有点扣好$var=test;   $var();就讲寻找与变量值相同名的函数test();

$var = test;
    function test($a,$b){
    	return $a+$b;
    }
    echo "结果".$var(2,4)."<br>";

函数类型

php提供2000多个函数,都属于系统函数,都可以通过名称直接使用。一定用先使用系统函数,如果系统函数没有你想要的功能,在去直接定义函数。

1.常规函数

    bool copy(string source,string dest)

2.带有mixed,mixed表示可以传任何类型的值

    bool chown (string filename,mixed user)

3.带有&参数的函数,表示引用赋值,这个参数不能传值,然后函数将变量的值改变,我们在使用这个变量时,值也是变化的

    bool arsort(array &array[,int sort_flags ])

4.带有【】的函数,表这个值是可选的,如果你传值了就使用你传的值,如果你没有传值则使用默认值,默认值直接在函数声明的时候赋值,可选值必须从后向前设置

    bool arsort (array &array [, int sort_flags])

function demo($a,$b=10,$c=30){
    echo "$a $b $c"
}
demo(8);

5.带有...的参数函数,...表示可以穿任何多个参数

    int array_unshift(array &array,mixed var [,mixed ...])

function demo(){
    $args = func_get_args();//获取参数的数组 ,返回的是数组个数
    $sum = 0;
    for ($i=0; $i < count($args); $i++) { //count 可以直接使用 func_get_args
    	$sum+=$args[$i];//args可以替换成func_get_arg
    }
    return $sum;
}
echo demo(1,3,5,7,8);

6.回调函数 带有callback,就是滴啊用这个函数时,需要我们传一个函数进来(函数名,函数名字串)

    array array-filter(array input [,callback callback])

function huidiao($a,$b,$fun){
    return $a+$b+$fun($a,$b);
}
function fun($a,$b){
    return $a*$b;
}
echo "回调函数===".huidiao(2,3,fun)."<br>";

函数的使用

1.内部函数:php可以在函数内部再声明函数目的就是在函数内部调用,就是用来帮助外部函数完成一些子功能的

2.递归函数:就是在自己内部调用自己的函数名

function total($dirname,&$dirnum,&$filenum){
    	$dir = opendir($dirname);//获取目录文件对象
    	readdir($dir);//读目录下的第一个文件
    	readdir($dir);
    	while ($filename=readdir($dir)) {
    		echo $filename."<br>";
    		$newFile = $dirname."/".$filename;
    		if (is_dir($newFile)) {//判断是否是目录
    			total($newFile,$dirnum,$filenum);
    			$dirnum++;
    		}else{
    			$filenum++;
    		}
    	}
    	closedir($dir);//关闭目录
    }
    $dirnum=0;
    $filenum=0;
    total("/Users/luoyaosheng/Sites",$dirnum,$filenum);
    echo "目录数为:$dirnum 文件数:$filenum";

3.重用函数:使用自己定义的函数库,可以包含 html,text,php文件

require :用于静态包含

include :用于动态包含

require_once :加once的包含 即使包含了多次文件都只算一次,防止报错。正常都是使用不加once

include_once


猜你喜欢

转载自blog.csdn.net/HYQ_java/article/details/80195656