目录

PHP 函数


PHP 的真正力量来自于它的功能。

PHP 拥有超过 1000 个内置函数,此外您还可以创建自己的自定义函数。


PHP 内置函数

PHP 具有 1000 多个内置函数,可以从脚本中直接调用这些函数来执行特定任务。

请查看我们的 PHP 参考以获取完整的概述PHP 内置函数


PHP 用户定义函数

除了内置的 PHP 函数之外,还可以创建您自己的函数。

  • 函数是可以在程序中重复使用的语句块。
  • 页面加载时,函数不会自动执行。
  • 函数将通过调用该函数来执行。

在 PHP 中创建用户定义函数

用户定义的函数声明以单词开头function:

语法

function functionName() {
  code to be executed;
}

笔记:函数名称必须以字母或下划线开头。函数名称不区分大小写。

提示:为该函数指定一个反映该函数功能的名称!

在下面的示例中,我们创建一个名为"writeMsg()" 的函数。左大括号 ( { ) 表示函数代码的开始,右大括号 ( } ) 表示函数的结束。该函数输出"Hello world!"。要调用该函数,只需在其名称后加上方括号 () 即可:

示例

<?php
function writeMsg() {
  echo "Hello world!";
}

writeMsg(); // call the function
?>
亲自试一试 »


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声明时,如果数据类型不匹配,它将抛出"Fatal Error"。

在下面的示例中,我们尝试将数字和字符串发送到函数而不使用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陈述。与函数参数的类型声明一样,通过启用严格要求,它将在类型不匹配时抛出"Fatal Error"。

要声明函数返回的类型,请添加冒号 (:) 和打开卷曲之前的类型 ({) 声明函数时的括号。

在下面的示例中,我们指定函数的返回类型:

示例

<?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 中,参数通常按值传递,这意味着函数中使用值的副本,并且传递到函数中的变量无法更改。

当函数参数通过引用传递时,对参数的更改也会更改传入的变量。要将函数参数转换为引用,&使用运算符:

示例

使用按引用传递参数来更新变量:

<?php
function add_five(&$value) {
  $value += 5;
}

$num = 2;
add_five($num);
echo $num;
?>
亲自试一试 »

PHP练习

通过练习测试一下

练习:

创建一个名为myFunction

 {
  echo "Hello World!";
}