有返回值的函数的写法
function add($a,$b){
return $a+$b;
}
add(30,40);
伪类型参数
主要进行函数参数类型说明
/*
number add (number $a,number $b)
//任何类型
mixed funname(mixed $a);
//传函数
funname(callback $a);
*/
有引用参数的函数
如果在函数说明中,有&出现,说明是引用参数,调用传参数时,则必须传递一个变量,而不是一个值。原因
1.只有在内存中的变量,才有地址
2.有引用关系的两个变量,一个变,另一个就变
$a = 20;
function demo(&$a){
$a = 100;
}
echo $a."<br>";
demo($a);
echo $a."<br>";
默认参数的函数
注意:默认参数必须列在所有没有默认值参数的后面。
/*
//中括号代表可选的
demo(string $name,int $age,[string $sex,[$string $email]]);
*/
function demo($name,$age,$sex = "three",$email = "wp@163.com"){
echo"--------"
}
多个参数的传输
没有声明参数列表,但可以传入任意个数,任意类型的参数值
function more_args(){
$args =func_get_args();
for($i = 0;$i<count($args);$i++){
echo"第".$i."个参数是".$args[$i]."<br>";
}
}
more_args("one",1,2,4);
变量函数
如果将一个函数名称(字符串),给一个变量(字符串),然后在这个变量后加上括号,就会调用这个变量值
function add($a,$b){
return $a+$b;
}
$one = "add";
echo $one(10,20);//30
回调函数
在参数调用时,在参数中传的不是一个变量或一个值,而是一个函数
$arr = array(1,3,2,81,19);
function data($a,$b){
if($a>$b)
return -1;
else if($a <$b)
return 1;
else
return 0;
}
print_r($arr);
usort($arr,"data");
echo '<br>' ;
print_r($arr);
//回调函数
function demo($n,$func){
for ($i=0; $i <$n ; $i++) {
if ($func($i))
continue;
echo $i."<br>";
}
}
function test($a){
if ($a%3 == 0) {
return false;
}else{
return true;
}
}
demo(10,"test");
利用系统函数读文件
//./是本文件,../是上一级文件路径
$dirname = "../phpmyadmin";
$dir = opendir($dirname);
// echo readdir($dir).'<br>';
while ($file = readdir($dir)) {
$filepath = $dirname.'/'.$file;
if (is_dir($filepath)) {
echo "目录:{$filepath}<br>";
}else{
echo "文件:{$filepath}<br>";
}
}
//关闭
closedir($dir);
递归函数:自己调用自己
function testFunc($n){
echo $n."<br>"; //结果2
if ($n>0) { 1
testFunc($n-1); 0
}else{ --------
echo "-----------<br>"; 0
} 1
echo $n."<br>"; 2
}
testFunc(2);
加载自定义的函数库
include:
include_once:防止重复加载
require:与include几乎等价,但当处理失败时,include()产生警告,require则导致一个致命错误
require_once:
require"function.inc.php";
require("demo.txt");
网友评论