php函数之常规参数函数和伪类型参数函数
php常规参数函数
常规参数函数,就是实参和形参应该个数相等、类型一致,像 C 语言或者 JAVA 等强类型语言中的参数使用方法一样。 这类函数的调用比较容易,因为灵活性不大,像强类语言一样要求比较严格(参数个数是固定的,每个参数的类型也是固定的)。
常规参数的函数格式说明类似如下的形式:
example(name, age, height) // 常规参数的函数格式
在php中,如果声明这样的函数就发挥不了PHP作为弱类型语言的优势。例如,在上面的常规参数的函数语法格式示例中,声明一个名为 example 的函数,函数执行后返回一个字符串类型的值。该函数有三个参数,调用时传递的参数个数和顺序必须一致,并且第一个参数必须是字符串类型,第二个参数必须是整型,第三个参数必须是双精度类型。例如,在自定义函数中求两个整数的平方和函数就是一个常规参数的函数,要求必须有两个整型的参数。系统函数也有很多是这种类型,一些使用常规参数的系统函数如下:
string chr(int ascii) // 必须使用一个整数作为参数 float ceil(float value) // 必须使用一个浮点数作为参数 array array_combine(array keys, array values) // 必须使用两个数组作为参数 int strnatcmp (string str1, string str2) // 必须使用两个字符串作为参数 string implode(string glue, array pieces) // 第一个参数必须是字符串,第二个参数必须是数组 string readdir(resource dir_handle) // 必须使用一个资源类型作为参数
php伪类型参数的函数
PHP是弱类型的语言,不仅在声明变量时不需要指定类型,在声明函数时参数也不需要指定类型,所以在PHP中函数的每个参数都可以为其传递任意类型的值。因为弱类型是 PHP 语言最大的特点,在声明一个函数时,可以让同一个参数接受任意类型的值。而在 C 或者 JAVA 等强类型编程语言中,如果要声明对数组进行排序的方法,就必须为每一种类型的数组写一个排序的方法,这就是所谓的函数重载。而PHP 这类弱类型参数则不存在重载的概念。在PHP中,如果对各种类型的数组进行排序,只要声明一个函数就够了,所以伪类型参数的函数是PHP中最常见的函数应用形式。
伪类型参数的函数格式说明类似如下所示:
mixed funName (mixed $args) // 在参数列表中出现类型使用 mixed 描述的参数 number funName (number $args) // 在参数列表中出现类型使用 number 描述的参数
PHP的伪类型,包括 mixed、number 和 callback 三种。在声明函数时,如果参数能够接受多种不同但并不必须是所有类型的值,在函数的说明文档中就可以使用 mixed 标记这个参数类型。如果说明一个参数可以是 整型或者浮点型,就可以使用 number 标记参数。除了参数可以传递伪类型的参数,函数的返回值也可以根据参数类型的不同返回不同类型的值,像 empty()、pow()等都是这样的函数。
例如call_user_func()函数就可接收用户自定义的函数作为一个参数,它是php的一个内置函数。callback函数不仅可以是一个函数,也可以是一个对象的方法,静态类的方法也可以。一个php函数用函数名字符串来传递,可以传递任何内置的或者用户自定义的函数。
下面来一个简单的实例:
<?php $data = array("name"=>"callback" , "value"=>"test"); $rs1 = http_build_query($data); //直接调用php函数 $rs2 = call_user_func("http_build_query",$data); //使用回调函数 echo $rs1; //name=callback&value=test echo "<br />"; echo $rs2; //name=callback&value=test ?>
说明:这里需要注意的是,参数1必须是可使用的函数可以通过function_exists()返回true的函数,这里提醒isset,empty,is_null 等认为的常用函数实际上是一个操作符.并不能算函数。
【相关教程推荐】
3. php实战视频教程
以上就是php函数之常规参数函数和伪类型参数函数的详细内容,更多请关注其它相关文章!