PHP函数
PHP 函数
PHP 的真正威力源自于它的函数。
什么是函数
我们在之前的学习中已经使用过大量的函数:var_dump、sprintf以及非常多的数组函数,他们的特点是什么?
• 都可以执行一些特定的功能
• 都有特殊的名称
• 都有或多或少的参数
• 大多数函数都会有返回值,即使没有也会执行特定的操作
• 不需要知道函数内部的实现逻辑
函数存在于大多数的程序语言中,它们被用于分隔哪些能够完成独立明确任务的代码。
函数名称必须以字母或者下划线开头,后面跟随字母、数字或者下划线,另外函数名是大小写不敏感的
什么是函数参数
我们可以把函数想象成一个榨汁机,参数就好比是我们投放进去的水果,而函数中执行的代码就好比是搅拌机的搅动
参数不同,函数返回的结果也不同,就像投放了橙子后不会出苹果汁一个道理。函数也可以接受多个参数,就好比是混合果汁
函数只留给我们函数名来调用,而我们无需了解函数里的代码是如何定义的,同样,我们也不需要了解榨汁机里的工作原理
PHP 内建函数
在 PHP 中,提供了超过 1000 个内建的函数。
如需查看所有数组函数的完整参考手册和实例,请访问我们的 PHP 参考手册。
PHP 函数
在本章中,我们将为您讲解如何创建自己的函数。
如要在页面加载时执行脚本,您可以把它放到函数里。
函数是通过调用函数来执行的。
你可以在页面的任何位置调用函数。
创建 PHP 函数
函数是通过调用函数来执行的。
语法
function 函数名(参数1, 参数2, 参数3 ……) {
代码/语句;
return 返回值;
}
PHP的函数不一定都要明确保留return语句,如果没有return,函数会自动返回null
PHP 函数准则:
· 函数的名称应该提示出它的功能
· 函数名称以字母或下划线开头(不能以数字开头)
实例
一个简单的函数,在其被调用时能输出我的名称:
PHP 函数 - 添加参数
为了给函数添加更多的功能,我们可以添加参数。参数类似变量。
参数就在函数名称后面有一个括号内指定。
实例 1
下面的实例将输出不同的名字,但姓是相同的:
"; } echo "My name is "; writeName("Kai Jim"); echo "My sister's name is "; writeName("Hege"); echo "My brother's name is "; writeName("Stale"); ?>
实例 2
下面的函数有两个参数:
"; } echo "My name is "; writeName("Kai Jim","."); echo "My sister's name is "; writeName("Hege","!"); echo "My brother's name is "; writeName("Ståle","?"); ?>
PHP 函数 - 返回值
如需让函数返回一个值,请使用 return 语句。
实例
自定义函数
我们之前调用的都是PHP内置的函数。但是,编程语言真正的功能是通过创建自己的函数来实现的
PHP提供的函数大多是基础的功能,譬如操作数组、访问数据库、读写文件等
但是,现实项目中,PHP函数是无法满足我们的需求的,我们找不到可以用来处理合同的函数、没有计算出勤率的函数、没有打印数据表格的函数
幸运的是,我们并不只局限于PHP内置函数,我们可以编写自己的函数来完成任何任务,这就是自定义函数。可以在自定义函数中使用PHP的内置函数,下面我们来了解函数的基本结构.
一次函数
在计算机中,函数最早就是用来模拟各种数学函数的,看下下面的代码
function linear($x) {
$k = 5;
$b = 3;
$y = $k * $x + $b;
return $y;
}
$value = 3;
echo linear($value);
该函数可以求解一次方程
• 函数是个黑盒,linear内部的任何变量在外部都无法访问
• 同样,函数内部也无法访问外部的变量
• 外部传递数据给函数使用参数
• 函数返回数据给外部使用返回值
函数的默认值
回顾函数的语法,只要稍作修改,给第二个参数后面加上等号,并且赋值,那么参数2就有了默认值,函数调用时只需要传递一个参数
function 函数名(参数1, 参数2 = 1) {
代码/语句;
return 返回值;
}
函数名(1);此时函数体内参数2的值是1(默认值)
函数名(1,2);此时函数体内参数2的值是2(传递的值)
默认值的作用
在实际的开发中,我们经常用到它,为什么?
假设有一个系统函数,已经使用了很久,到处都有调用它的地方,如果需要添加新的逻辑,很有可能需要给它添加一个新的参数
如果添加了新参数,这时函数的定义改变了,我们需要找到每个调用的地方去修改并增加这个参数
如果给个默认值呢?默认值用来控制关闭新的逻辑,这样原先的代码不用做任何修改也不会执行到新的逻辑,而新的代码,可以显示的指定参数打开新的逻辑