PHP 定义函数
本文最后更新于:2024年3月18日 凌晨
PHP 定义函数
要定义一个函数,可以用下面的语法:
1 2 3 4
| function [&] function_name ( [parameter [ , ... ] ] ) { statement list }
|
- 语句列表里可以包括HTML,你甚至可以声明一个不包含任何PHP代码的PHP函数,例如,column()函数给可能在页面中要多次使用HTML代码的一个方便的简称。
1 2 3
| <? Function column() { ?> <td></td> <? } ?>
|
- 函数名可以是以字母或下划线开头其后跟随零个或多个字母,下划线和数字的任意字符串,函数名是不区分大小写的,也就是说,可以用sin(1),SIN(1),SiN(1)等方式来调用sin()函数,因为这些函数名都指向相同的函数。
- 函数通常返回一些值,可使用return语句,把"return expr”放在函数中,执行期间遇到一个return语句时,控制权返回到调用函数的语句,并且对expr求值的结果将会作为函数值返回,虽然它会使代码变得杂乱,但实际上如果有必要的话可以在一个函数中包含多个return语句(例如,如果有一个switch语句来决定在若干值中要返回哪一个值)
- 如果定义函数时在函数名前使用了可选的&符号,则函数返回一个对返回数据的引用而不是数据的拷贝。
- 让我们来看一个简单的函数,下例有两个字符串,把它们连接起来然后返回结果(在这里,我们创建了一个和字符串连接符".”功能相同而速度略慢的函数,只是用于示例。
示例3-1:字符串连接。
1 2 3 4
| function strcat($left, $right){ $combined_string = $left . $right; return $combined_string; }
|
- 该函数有两个参数,
$left
和$right
,通过使用连接操作符,函数在变量$combined_string
中创建了一个合并的字符串,最后,为了让函数在对参数求值时有一个值,我们返回$combined_string
的值。
- 因为return语句可以接受任何表达式,甚至是复杂的表达式,我们可以入下例来简化程序:
示例3-2:简化的字符串连接。
1 2 3
| function strcat($left, $right){ return $left . $right; }
|
- 如果把这个函数放到一个PHP页面中,就可以在该页面的任何地方调用这个函数,如下例所示:
示例3-3:使用我们定义的字符串连接函数。
1 2 3 4 5 6 7 8 9
| <?php function strcat($left, $right){ return $left . $right; } $first = "This is a "; $second = "complete sentence!";
echo strcat($first, $second); ?>
|
- 当页面被显示时,将输出字符串连接后完整的句子。
- 在下示例中函数将一个整数翻倍,然后返回结果:
1 2 3
| function doubler($value){ return $value << 1; }
|
- 一旦函数被定义,就可以在页面的任何地方使用它,示例如:
1
| <?= 'A pair of 13s is ' . doubler(13); ?>
|
- 可以嵌套函数声明,但是其作用有限,嵌套声明并没有限制内部定义函数的可见性,这样就可以在程序的任何地方调用它,内部函数不能自动取得外部函数的参数,最后,除非外部函数被调用,否则内部函数无法被调用。
1 2 3 4 5 6 7 8 9
| function outer ($a){ function inner ($b){ echo "there $b"; } echo "$a, hello"; } outer("well"); inner("reader"); well,hello there reader
|