您的位置:首页 > 编程语言 > PHP开发

PHP学习笔记(五):函数

2015-09-24 14:46 525 查看
用户自定义函数

一个函数可由以下的语法来定义:

function add($arg1,$arg2)
{
return $arg1+$arg2;
}
$result = add(3,4);


函数名和PHP中的其他标识符命名规则相同。Note:函数名是大小写无关的。

函数无需在调用之前被定义,除非是函数是有条件被定义的,当一个函数是有条件被定义时,其定义必须在调用之前先处理。

例:

$flag = true;
/*不能在此处调用foo()函数,因为它还不存在,但可以调用bar()函数。*/
bar();
if($flag){
function foo()
{
echo "I don't exist until program reaches me.\n";
}
}
/*现在可以安全调用函数foo()了,因为条件为真,函数被定义了*/
if ($flag) foo();
function bar()
{
echo "I exist inmediately upon program start.\n"
}


对于函数中的函数,同样是外层函数被调用以后,内层函数才可以被调用。

PHP中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。PHP不支持函数重载,也不可能取消定义或者重定义已声明的函数。

PHP中可以调用递归函数。但是要避免递归函数/方法调用超过100-200层,因为可能会使堆栈崩溃从而使当前脚本终止。

函数的参数

PHP支持按值传递参数(默认),引用传递参数以及默认参数(必须为常量表达式,不能是诸如变量,类成员,或者函数调用等。当使用默认参数时,任何默认参数都必须放在任何非默认参数的右侧;否则函数将不会按照预期工作。),也支持可变长度参数列表。

值传递(在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数,即在此参数的 前面加上符号&。

返回值

值通过可选的返回语句返回。可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。

函数不能返回多个值,但可以通过返回一个数组来得到类似的效果。

可变函数

PHP支持可变函数的概念,这意味着如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数,并且尝试执行它。

例:

function  foo () {
echo  "In foo()<br />\n" ;
}

function  bar ( $arg  =  '' ) {
echo  "In bar(); argument was ' $arg '.<br />\n" ;
}

// 使用 echo 的包装函数
function  echoit ( $string )
{
echo  $string ;
}

$func  =  'foo' ;
$func ();         // This calls foo()

$func  =  'bar' ;
$func ( 'test' );   // This calls bar()

$func  =  'echoit' ;
$func ( 'test' );   // This calls echoit()


内部(内置)函数

匿名函数

匿名函数(Anonymous Functions),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用做回掉函数(callback)参数的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 函数