函数是一段完成指定任务的以命名代码块。 函数可以遵照给它的一组值或参数完成特定的任务,并且可能返回一个值。在php中有两种函数:自定义函数和系统函数
function_exists():判断函数是否存在
自定义函数语法格式:
function 函数名称([参数1[,参数2[,...]]]){
程序内容叙述(函数体);
[return 返回值;]//如需函数有返回值时使用
}
//return也有终止函数运行的意思
函数的使用:
函数名称([参数1[,参数2[,...]]]);
自定义函数的名称
它是函数在程序代码中的识别名称,函数名可以是以字母或下划线开头后跟零个或多个字母、下划线和数字的任何字符串。函数名不区分大小写,命名函数时不可使用已声明的函数,或php内建的函数名称。
参数
所谓的参数就是用来把数值由函数外部传入函数体中,并用来加以运算处理。参数之间用","号隔开。当函数不需要任何数值传入时,可以省略参数。
返回值
当调用函数时需要它返回一些数值,那么就要函数体中用return
语句实现。return 返回值;
局部变量
函数内部声明的变量,只能在函数内部调用,这就是------++局部变量++
函数的参数就是一个局部变量,声明是形成的,可以在调用时,给值,传值
全局变量
全局变量,在函数外部声明的变量,可以在每个函数中使用(顺序)。
在函数内部如果需要使用函数外部的变量,需要使用global关键字,将外部变量引入
输出:姓名
静态变量
一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调用时被初始化。要声明函数变量为静态的用关键字static。 通常,静态变量的第一次使用时赋予一个初始值
输出:01234
String example(string name,int age, double height)
伪类型参数
mixed funName(mixed $a,number $b,callback $c)
void funName(array &args)
输出:100100
mixed funName(string name[,string value [,int num]])
输出:13
mixed funName(string arg1[,string ...])
func_get_args()//返回一个数组,包含所有参数
func_num_args()//返回参数总数
func_get_arg()//接收一个数字参数,返回指定参数
如果将一个函数名称,给一个变量,然后再这个变量后面加上括号,就会调用这个变量值对应函数
例子:
输出:28
mixed funName(callback arg)
strlen($b))
return 1;
else if(strlen($a)";
print_r($arr);
?>
输出:
Array ( [0] => abc [1] => a [2] => aaaa [3] => abcde [4] => aaaaaaaaa )
Array ( [0] => a [1] => abc [2] => aaaa [3] => abcde [4] => aaaaaaaaa )
";
}
}
//过滤所有的回文数
function test($i){
//strrev:翻转字符串
if($i==strrev($i))
return true;
else return false;
}
demo(500,"test");
";
}
}
//过滤所有的回文数
function test($i){
//strrev:翻转字符串
if($i==strrev($i))
return true;
else return false;
}
demo(500,"test");
";
}
}
demo(500,array(new Filter(),"one"));//类中方法的回调
demo(500,array("Filter","two"));//类中静态方法的回调
?>
例如:遍历一层目录
$dirname="./phpmyadmin";
function fordir($dirname){
//打开目录资源
$dir=opendir($dirname);
readdir($dir);
readdir($dir);
while($file=readdir($dir)){
$nfile=$dirname.'/'.$file;
if(is_dir($nfile)
echo "目录:{$nfile}";
else
echo "文件:{$nfile}";
}
closedir($dir);//关闭目录资源
}
fordir($dirname);
例子:遍历文件夹下所有的文件,
$dirname="./phpmyadmin";
function fordir($dirname){
//打开目录资源
$dir=opendir($dirname);
readdir($dir);
readdir($dir);
while($file=readdir($dir)){
$nfile=$dirname.'/'.$file;
if(is_dir($nfile)
echo "目录:{$nfile}";
fordir($nfile);
else
echo "文件:{$nfile}";
}
closedir($dir);//关闭目录资源
}
fordir($dirname);
例子:
$var=function($a,$b,$c){
return $a+$b+$c;
};//一定要加分号结束
var_dump($var);
连接闭包和外界变量的关键字:USE
闭包可以保存在代码块上下文的一些变量和值。PHP在默认情况下,匿名函数不能调用所在代码块的上下文变量,而需要通过使用 use
关键字
例子