PHP 函数
PHP 的真正力量来自它的函数
PHP 有1000多个内置函数,此外,您还可以创建自己的自定义函数。
PHP 内建函数
PHP 有1000多个内置函数,可以从脚本中直接调用这些函数来执行特定任务。
有关 PHP 内置函数 的完整概述,请查看我们的PHP参考资料。
PHP 用户定义函数
除了内建的 PHP 函数,我们可以创建我们自己的函数。
- 函数是可以在程序中重复使用的语句块。
- 页面加载时函数不会立即执行。
- 函数只有在被调用时才会执行。
在 PHP 创建用户定义函数
用户定义的函数声明以单词 function
开头:
语法
function functionName()
{
code to be executed;
}
注释: 函数名能够以字母或下划线开头(而非数字)。
提示: 函数名应该能够反映函数所执行的任务。
在下面的示例中,我们创建了一个名为 "writeMsg()" 的函数。开始的大括号({)表示函数代码的开始,结束的大括号(})表示函数的结束。函数输出 "Hello world!"。要调用该函数,只需将其名称后跟括号 ():
PHP 函数参数
可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Jani),这样会输出不同的名字,但是姓氏相同:
实例
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
亲自试一试 »
下面的例子中的函数有两个参数($fname 和 $year):
实例
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
亲自试一试 »
PHP 是一门弱类型语言
在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
PHP 会根据变量的值,自动把变量转换为正确的数据类型。由于数据类型不是严格意义上的设置,因此可以在不导致错误的情况下执行向整数添加字符串之类的操作。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
在 PHP 7 中,添加了类型声明。这提供了一个选项来指定声明函数时所需的数据类型,通过启用严格要求,它将在类型不匹配时抛出 "致命错误" 。
在以下示例中,我们尝试在不使用 strict
的情况下向函数发送数字和字符串:
实例
<?php
function addNumbers(int $a, int $b) {
return $a
+ $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is
changed to int(5), and it will return 10
?>
亲自试一试 »
要指定 strict
,我们需要设置 declare(strict_types=1);
。这必须在 PHP 文件的第一行。
在下面的示例中,我们尝试向函数发送数字和字符串,但在这里我们添加了严格( strict
)声明:
实例
<?php declare(strict_types=1); // strict requirement
function
addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5
days");
// since strict is enabled and "5 days" is not an integer, an
error will be thrown
?>
亲自试一试 »
严格( strict
)的声明迫使事物按预期的方式使用。
PHP 默认参数值
下面的例子展示了如何使用默认参数。如果我们调用没有参数的 setHeight() 函数,它的参数会取默认值:
实例
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
亲自试一试 »
PHP 函数 - 返回值
如需使函数返回值,请使用 return
语句:
实例
<?php declare(strict_types=1); // strict requirement
function sum(int $x,
int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
亲自试一试 »
PHP 返回类型声明
PHP 7 还支持 return
语句的类型声明。与函数参数的类型声明一样,通过启用严格要求,它将在类型不匹配时抛出"致命错误"。
要声明函数 return 的类型,请在声明函数时在开头的花括号 ( {
) 之前添加冒号 (:
) 和类型。
在以下示例中,我们指定函数的返回类型:
实例
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
亲自试一试 »
您可以指定不同于参数类型的返回类型,但请确保返回的类型正确:
实例
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
亲自试一试 »
通过引用传递参数
在 PHP 中,参数通常按值传递,这意味着函数中使用了值的副本,并且传递到函数中的变量不能更改。
通过引用传递函数参数时,对参数的更改也会更改传入的变量。要将函数参数转换为引用,请使用 &
运算符:
实例
使用通过引用传递参数 (pass-by-reference) 更新变量:
<?php
function add_five(&$value) {
$value += 5;
}
$num
= 2;
add_five($num);
echo $num;
?>
亲自试一试 »