匿名函数
也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。当然,也有其它应用的情况。
<?php
$greet = function($name){
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
递归函数
所谓的函数递归调用,就是函数可以在其声明的执行叙述之中调用执行自己。
通常在此类型的函数之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定条件下终止函数的递归调用动作,把目前流程的主控权交回上一层函数执行。
因此当某个执行递归调用的函数,没有附加条件判断叙述时可能会造成无限循环的错误情形. 函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序,并且能以这种特性来执行一些较为复杂的运算动作。
<?php
/**
声明一个名称为test的函数,用于测试递归
$param int $n 需要一个整数作为参数
*/
function test( $n ) { //声明一个名为test的函数,有一个参数
echo $n." "; //在函数开始处输出参数的值和两个空格
if($n>0) //判断参数是否大于0
test($n-1); //如果参数大于0则调用自己,并将参数减1后再传入
else //判断参数不大于0
echo " <--> "; //输出分界字符串
echo $n." "; //在函数结束处输出参数的值和两个空格
}
test(10); //调用test()函数将整数10传给参数
?>
使用自定义函数库
代码重用 通过重复使用已有的代码,提高开发效率,降低成本
include( )和require( ) 函数。
require( )将一个文件在预处理期间被导入,像把该文件粘贴到使用函数的地方。 include( )与require ( )几乎等价,区别在于在脚本执行时包含,当处理失败时,include( )产生一个警告而require( )则导致一个致命错误。
include_once( )和require_once( )函数
两个函数在脚本执行期间包括并运行指定文件。与include( )语句及require( )类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括,只会包括一次。这两个函数应该用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。
<?php
require 'config.php'; //使用require语句包含并执行config.php文件
if ($condition) //在流程控制中使用include语句
include 'file.txt'; //使用include语句包含并执行file.txt文件
else //条件不成立则包含下面的文件
include ('other.php'); //使用include语句包含并执行other.php文件
require ('somefile.txt'); //使用require语句包含并执行somefile.txt文件
?>