定义与调用
函数是一组可重复使用的,特定功能的代码块
function foo($arg_1, $arg_2, ..., $arg_n){
echo "Example function.n";
return $retval;
}
有效函数名以字母或下划线开始,后跟字母、数字、下划线。
※ 不支持函数重载,也不能取消定义或重定义
※ 调用:函数无需在调用之前被定义,但是当一个函数是有条件地定义时,必须在调用之前定义。
※ 作用域:在PHP中局部作用域指函数内部,全局作用域就是函数外部,PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。

在$name前加上关键字“GLOBAL”,或者函数名写为“test()use($name)”即可输出
函数参数
通过参数列表可传递信息到函数,以逗号作为分隔符的表达式列表,参数从左向右求值。
形参:在函数定义时的括号里写入,可有可无,可设定默认值
实参:在调用函数时使用的参数,实参和形参个数相匹配,只数量能大于不能少于
返回值
return 为可选,函数输出结果在内存中。
不能返回多个值,但可以通过返回数组来得到类似效果。
※ 如果省略了 return,则返回值为 NULL,函数结尾必须Return运行结果、或直接在函数内部echo,否则函数不输出。
可变函数&匿名函数

函数值传递
►值传递(拷贝传值)
$name = 'Jax';
function test($name){
$name = 'May';
echo "函数调用结果:",$name,'
';
}
echo "函数调用前:",$name,'
';
test($name);
echo "函数调用后:",$name,'
';
上述程序执行结果依次为:Jax/May/Jax
►引用传递(引用传值)
$name = 'Jax';
function test(&$name){
$name = 'May';
echo "函数调用结果:",$name,'
';
}
echo "函数调用前:",$name,'
';
test($name);
echo "函数调用后:",$name,'
';
上述程序执行结果依次为:Jax/May/May
内置函数
PHP 有很多标准函数。有一些函数需要和特定地 PHP 扩展模块一起编译,否则使用时候会产生致命的"未定义函数"错误。如imagecreatetruecolor()需要加上 GD 的支持,mysql_connect()需要加上 MySQL 支持。调用 phpinfo()或get_loaded_extensions() 可查看已加载了那些扩展库。
Time()
//返回从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
mktime(时,分,秒,月,日,年)
//将一个日期转为 Unix 时间戳
Date(“Y-m-d H:i:s”,[ int $timestamp ] )
//返回将整数 timestamp 按照给定的格式字串而产生的字符串。
Floor( float $value)
//舍去法取整, 向下取整
Ceil(float $value)
//进一法取整, 向上取整
Round(float $value)
//对浮点数进行四舍五入
Rand( int $min , int $max )
//如果没有提供可选参数 min 和 max,则返回0到getrandmax()之间的伪随机整数。
Mt_rand(int $min , int $max)
//可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍
递归函数
函数自身调用自身
function recursion($a)
{
if ($a < 20) {
echo "$an";
recursion($a + 1);
}
}
※ 避免递归超过100-200层,可能会使堆栈崩溃从而终止当前脚本,无限递归视为编程错误
评论列表(0条)