PHP学习笔记(五):函数

本文介绍了PHP中如何定义和使用函数,包括函数的基本语法、参数传递方式、返回值处理及可变函数的概念。同时,文章还讲解了递归函数的使用限制及内部函数的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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)参数的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值