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

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!