1. 常规参数的函数;
- 常规参数的函数格式说明:
string example(string name,int age,double height)
- 所谓的常规参数的函数,就是实参和形参应该个数相等、类型一致。就像 C 或 Java 等强类型型语言。
- 上面函数有三个参数,调用时传递的参数个数和顺序必须一致。
- 比如:
string chr(int $ascii)
,返回指定的字符float ceil(float $value)
,进一法取整array array_combine(array $keys,array $values)
,合并一个数组string implode(string $glue,array $pieces)
2. 伪类型参数的函数;
- 常规参数的函数格式说明:
mixed funName(mixed $a, number $b, callback $c)
- PHP是弱类型语言,不仅在声明变量时不需要指定类型,当然在声明函数时也不需要指定类型,所以在PHP中函数的每个参数,都可以为其传递任意类型的值。
- 三种伪类型:
mixed
、number
和 callback
。 - 比如:
bool empty(mixed $var)
,检查一个变量是否为空bool usort(array &$array,callback $cmp_function)
,自定义函数对数组排序number abs(mixed $number)
,绝对值
3. 引用参数的函数;
- 引用参数的函数格式说明:
void funName(array &args)
- "&"修饰的参数是引用参数,会得到变量的地址,实际上就是把参数的地址传进来。如果在函数内部修改了参数,外部所对应的变量数据一样会被修改。
- 相对于按值传递模式,并不会将父程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块相对地址导入函数之中。因此当该数值在函数中有任何变动时,会连带对父程序造成影响。
- 注意:如果在函数的形参中使用“&“修饰的参数,在调用该函数时必须传入一个变量给这个参数,而是不能传递一个值。
<?php
function demo(&$num){
return $num++;
}
$i = 10;
echo demo($i);
echo "<hr />";
echo $i;
4. 默认参数的函数;
- 默认参数(“[]”中的)的函数格式说明:
mixed funName(string name [,string value [,int num]])
- 在 PHP 中,支持函数的默认方式调用。如果在调用函数时没有指定参数的值,在函数中会使用参数的默认值
- 注意:默认参数必须列在所有没有默认值参数的后面。
5. 回调函数。
- 回调函数格式说明:
mixed funName(callback arg)
- 所谓回调函数,就是指调用函数时并不是传递一个标准的变量作为参数,而是将另一函数作为参数传递到调用的函数中。
<?php
function one($i){
if($i % 3 == 0) return true;
return false;
}
function two($i){
if($i % 4 == 0) return true;
return false;
}
$result = "one";
var_dump($result(10));
var_dump($result(9));
<?php
function one($num){
if($num % 3 == 0) return true;
return false;
}
function two($num){
if($num == strrev($num)) return true;
return false;
}
function filter($fun){
for($i = 0; $i < 100; $i++){
if($fun($i)) continue;
echo $i;
echo "<br />";
}
}
filter("one");
filter("two");
<?php
function demo($msg1, $msg2){
echo $msg1;
echo "<hr />";
echo $msg2;
}
call_user_func_array("demo", ["信息1", "信息2"]);