使用PHP函数的详细教程

117 阅读3分钟

一个函数是一个在程序中重复使用的语句块。 当一个页面加载时,一个函数不会立即执行。相反,对函数的调用将执行一个函数。 PHP的真正力量来自于它的函数;它有1000多个内置函数。

PHP函数

PHP函数与其他编程语言相似。函数是一段代码,在参数中再接受一个输入,做一些处理,并返回一个值。

你已经看到了许多函数,如push()explode()等。它们都是内置的函数,但PHP给你提供了创建函数的选择。

这里有两个部分,你应该很清楚。

  1. 在PHP中创建一个用户定义的函数
  2. 在 PHP 中调用一个用户定义的函数

你几乎不需要创建你的PHP函数,因为已经有超过1000个为不同领域创建的内置函数库,你需要根据你的要求来调用它们。

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

你可以创建一个函数;它的名字应该以关键字function 开头, 所有的PHP代码应该放在{和}大括号里。

function functionName() {
    code to be executed;
}

函数名可以以字母或下划线开头,不能以数字开头。函数名不区分大小写,请看下面的代码:

<?php

function series() {
    return 'Stranger Things';
}

我们已经创建了一个series()函数,用来返回Stranger Things 字符串。

我们已经创建了一个函数,但没有调用这个函数。

在PHP中调用一个用户定义的函数

好了,我们可以用下面的语法来调用这个函数。

functionName();

如果我们继续上面的例子,我们可以写下面的代码来调用这个PHP函数。

<?php

function series() {
    return 'Stranger Things';
}

echo series();

我们正在打印来自series()函数的返回字符串。请看输出结果。

➜  pro php app.php
Stranger Things                                                                 
➜  pro

带参数的PHP函数

PHP给你提供了在函数中传递参数的选项。

你可以传递任意多的参数。这些参数在函数中的作用类似于变量。

请看下面的代码:

<?php

function series($mike, $eleven) {
   echo "Both {$mike} and {$eleven} are cute!";
}

series('Finn', 'Millie');

我们传递了两个参数,即mikemike和eleven。我们在调用时提供了字符串或数字或任何你想传递的参数类型。

请看输出结果:

➜  pro php app.php
Both Finn and Millie are cute!                                                   
➜  pro

PHP会根据变量的值自动给它关联一个数据类型。由于数据类型不是严格意义上的设定,所以可以做一些事情,比如把一个字符串加到一个整数上而不会引起错误。

在PHP7中,增加了类型声明的内容。这给了我们一个选项,可以在声明函数时指定预期的数据类型,通过启用严格要求,在类型不匹配时将会抛出一个 "致命错误"。

请看下面的例子:

<?php

function series($jane, $eleven) {
   echo $jane + $eleven;
}

series('Millie Bobby Brown', 11);

请看输出:

➜  pro php app.php
PHP Warning:  A non-numeric value encountered in /Users/krunal/Desktop/code/php/pro/app.php on line 4

Warning: A non-numeric value encountered in /Users/krunal/Desktop/code/php/pro/app.php on line 4
11                                                                              
➜  pro

我目前的PHP版本是这样的:

➜  pro php -v
PHP 7.2.14 (cli) (built: Jan 12 2019 05:21:04) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies
➜  pro

PHP默认参数值

如果实际参数没有给到函数,我们可以传递默认参数。

请看下面的代码:

<?php

function setPrice(int $florencebymills = 10) {
  echo "The min price is : $florencebymills"."\n";
}

setPrice();

我们将默认价格定义为$florencebymills变量,它是10。

因此,当你调用setPrice() 函数时,你不一定需要传递参数。但是,你仍然会得到默认值,也就是10。请看输出。

➜  pro php app.php
The min price is : 10
➜  pro

但是,你也可以通过提供实际值来覆盖默认值,如下所示:

<?php

function setPrice(int $florencebymills = 10) {
  echo "The min price is : $florencebymills"."\n";
}

setPrice(14);

我们将14作为一个实际的参数传递。所以,它将覆盖正式参数。

请看输出:

➜  pro php app.php
The min price is : 14
➜  pro

动态函数调用

可以将函数名作为字符串分配给变量,然后像对待函数名本身一样精确地对待它们。

请看下面的代码:

<?php

function lyrics() {
  echo "KGB was dogging me!";
}

$sim = "lyrics";
$sim();

在上面的代码中,我们已经定义了lyrics() 函数。

然后我们定义了一个变量,其值与函数名相同,然后我们将该变量视为一个函数,并调用该函数,看到输出:

➜  pro php app.php
KGB was dogging me!                                                             
➜  pro

本教程到此结束。

推荐文章

PHP chunk_split()

PHP数组sum()

PHP count()

如何在PHP中检查变量是否为空

PHP array_walk()