命名规范
函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母xwenw.com/tag/%e6%88%96" target="_blank">或下划线打头,后面跟字母,数字或下划线。
函数无需在调用之前被定义
<?php
function actionA()
{
echo "A";
}
actionA();//可以调用
actionB();//可以调用
function actionB()
{
echo "B";
}
除非函数是有条件被定义或者在函数中调用函数,一般都无须在调用函数之前定义。
函数中调用函数
<?php
function actionA()
{
function actionB()
{
echo "B";
}
}
actionB();//无法调用
actionA();//定义函数 actionB()
actionB();//可以调用
PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。
<?php
function sayHi()
{
echo 'Hi';
}
function sayHi()
{
echo 'Hello';
}
sayHi();//报错,不能重定义函数 sayHi()
函数名是大小写无关的,不过在调用函数的时候,通常使用其在定义时相同的形式。
递归函数
递归函数的本质是函数调用函数本身,但是要避免递归函数/方法,调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。 无限递归可视为编程错误。
<?php
function recursion($a)
{
if ($a < 20) {
echo "$a\n";
recursion($a + 1);
}
}
函数的参数
通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表。
PHP 支持按值传递参数(默认),通过引用传递参数以及默认参数。也支持可变数量的参数;
通过引用传递参数
缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)。如果希望允许函数修改它的参数值,必须通过引用传递参数。 如果想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面预先加上符号 &:
<?php
function actionB(&$string)
{
$string .= 'and something extra.';
}
$str = 'This is a string, ';
actionB($str);
echo $str; // outputs 'This is a string, and something extra.'
?>
默认参数的值
函数可以定义 C++ 风格的标量参数默认值,如下:
<?php
function makecoffee($type = "cappuccino")
{
return "Making a cup of $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("espresso");
?>
以上例程会输出:
Making a cup of cappuccino.
Making a cup of .
Making a cup of espresso.
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)