PHP 知识量:7 - 20 - 67
下面通过一个简单的示例解释一下php函数的基本语法。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php function show() { echo "hello!"; } function showName($name) { echo "hello $name!"; } show(); showName("john"); ?> </body> </html>
php的函数主要由以下几个部分组成:
以保留字(或者称关键字)“function”开头。
function后跟一个自定义变量名作为函数的名称。函数的名称可以由字母、数字和下划线组成,但是第一个字符必须是字母或下划线。示例中为“show”和“showName”。
一个小括号“()”,里面可以设置要传递给函数的参数,也可以不设置。示例中“show”没有设置参数,“showName”的参数为“$name”。
由大括号“{}”定义的函数体,函数体内是函数要执行的代码。示例中函数要执行的操作均是显示问候语句,其中,“showName”根据参数显示问候的对象。
php函数的调用也十分简单,只需要通过函数名加一个括号即可。以上示例中,调用函数show使用了show(),调用函数showName使用了showName(),括号内是要传递的参数“john”。
可以向php函数传递多个参数,php会按照参数的顺序自动匹配。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php function numberList($a, $b, $c) { echo "$a,"; echo "$b,"; echo "$c.<br>"; $sum = $a + $b + $c; echo "$a+$b+$c=$sum"; } numberList(1, 2, 3); ?> </body> </html>
以上代码中,定义了一个包含3个参数的函数numberList,它要完成的工作是显示传入的参数,并计算和显示它们的和。调用函数时分别传递了1、2、3这3个数字,它们按照传递的顺序依次被对应给$a、$b、$c,然后进行相应的显示和计算。
php函数参数可以设置默认值,当调用函数时,如果没有传递参数,函数会使用默认值作为参数的值。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php function numberList($a = 1, $b = 2, $c = 3) { echo "$a,"; echo "$b,"; echo "$c.<br>"; $sum = $a + $b + $c; echo "$a+$b+$c=$sum<br>"; } numberList(); numberList(4, 5, 6); ?> </body> </html>
以上代码中,通过赋值语句分别设置了函数3个参数的默认值,其中$a = 1, $b = 2, $c = 3
。第一次调用函数时,没有给出参数,函数就会使用默认值进行显示和计算。第二次调用函数时,给出了参数“4、5、6”,它们会替换(覆盖)默认参数值,结果就会显示“4、5、6”并计算它们的和为15。
通常情况下,定义一个变量,然后通过变量作为参数传递给函数,其所传递的只是变量的值,并不是变量本身,函数体内对参数值的操作不会影响函数外的变量,这叫做传值。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = 1; function addOne($a) { $a = $a + 1; echo "$a<br>"; } addOne($number); echo "$number"; ?> </body> </html>
以上代码中,定义了一个变量$number并赋值为1。然后定义了一个函数addOne,它接收一个参数$a,对$a加1后显示结果。调用函数时,将$number作为参数传递给了函数addOne,$number的值将对应给$a。执行后将显示结果“2”,而$number的值没有受函数计算影响,它仍然显示为1。
如果我们想让函数内部的计算影响外部变量(该变量曾作为参数传递给函数),可以对变量进行传引用操作,也就是真的将变量本身传递给函数。实现的方法就是在变量前加“&”。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = 1; function addOne(&$a) { $a = $a + 1; echo "$a<br>"; } addOne($number); echo "$number"; ?> </body> </html>
以上代码的不同之处在于,定义函数参数时前面加上了一个“&”,将“$a”变为“&$a”,这样调用函数后,$number的值也会变为2。
php函数可以返回值,也可以什么都不返回,这取决于函数的设计功能。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php function addOne($a) { $a = $a + 1; return $a; } function show($what) { echo "$what"; } show(addOne(5)); ?> </body> </html>
以上代码中,分别定义了两个函数,函数addOne会通过return语句返回参数加1的结果,函数show则不返回任何值,而是在页面上打印参数的值。通过show(addOne(5))一次性调用了这两个函数,其中函数addOne的返回值作为参数传递给了函数show。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6