Php/php functions

来自菜鸟教程
跳转至:导航、​搜索

PHP函数

PHP的真正功能来自其功能。

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

PHP内置函数

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

请查看我们的PHP参考资料,以完整了解 PHP内置函数

.

PHP用户定义函数

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

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

在PHP中创建用户定义的函数

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

句法

 function functionName()
 {

  code to be executed;

 }

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


Tip: 给该函数起一个能反映该函数作用的名称!

在下面的示例中,我们创建一个名为“ 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 声明,如果数据类型不匹配,它将抛出“致命错误”。

在下面的示例中,我们尝试不使用而将数字和字符串都发送到函数 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
?>

The 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 声明。与函数参数的类型声明一样,通过启用严格要求,它将在类型不匹配时引发“致命错误”。

要声明函数返回的类型,请添加一个冒号( : )和开头卷曲之前的类型( { )声明功能时用括号括起来。

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

  <?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练习