函数
函数是在程序中为执行特定任务而编写的代码块。我们可以将程序中的功能与现实生活中的办公室员工联系起来,以便更好地理解功能是如何工作的。假设老板想让他的员工计算年度预算。那么,这个过程将如何完成呢?员工将从老板那里获得关于统计数据的信息,进行计算并计算预算,并将结果显示给老板。函数以类似的方式工作。它们将信息作为参数,执行语句块或对这个参数执行操作。
PHP为我们提供了两种主要的函数类型:
- 内置函数:PHP为我们提供了大量的内置库函数。这些函数已经以函数的形式进行了编码和存储。要使用它们,我们只需要根据我们的需求调用它们,比如var_dump、fopen()、print_r()、gettype()等等。
- 用户定义函数:除了内置函数外,PHP允许我们创建自己定制的函数,称为用户定义函数。使用它,我们可以创建我们自己的代码包,并在任何需要的地方使用它,只需调用它。
为什么要使用函数?
- 可重用性:如果我们有一个公共代码,我们想在程序的不同部分使用,我们可以简单地将它包含在一个函数中,并在需要时调用它。这减少了重复单一代码的时间和精力。这既可以在程序中完成,也可以通过在其他程序中导入包含该函数的PHP文件来完成。
- 更容易的错误检测:由于我们的代码被划分为函数,我们可以很容易地检测到哪个函数,错误可以说谎,并快速和容易地修复它们。
- 易于维护:因为我们在程序中使用了函数,所以如果有任何代码或代码行需要更改,我们可以在函数内部轻松地更改它,更改将在调用函数的任何地方反映出来。因此,易于维护。
创建一个函数
在创建用户定义函数时,我们需要记住一些事情:
- 任何以开括号和闭括号结尾的名称都是函数。
- 函数名总是以关键字函数开头。
- 要调用一个函数,我们只需要在括号后面写上它的名称
- 函数名不能以数字开头。它可以以字母表或下划线开头。
- 函数名不区分大小写。
语法
1 2 3 | function function_name(){ executable code; } |
例子
1 2 3 4 5 6 7 8 9 10 11 | <?php function funcG() { echo "This is good site!"; } // 调用的函数 funcG(); ?> |
输出
1 | This is good site! |
函数参数
函数括号内的信息或变量称为参数。它们用于在运行时保存可执行的值。用户可以随意接受任何他想要的参数,用逗号(,)操作符分隔。这些参数用于在运行时接受输入。在函数调用期间传递值时,它们被称为参数。参数是传递给函数的值,变量用于保存这些参数。在通用术语中,参数和参数的含义是相同的。我们需要记住,对于每个参数,我们都需要传递
语法
1 2 3 | function function_name($first_parameter, $second_parameter) { executable code; } |
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // 函数与三个参数 function proGeek($num1, $num2, $num3) { $product = $num1 * $num2 * $num3; echo "The product is $product"; } // 通过给定三个参数调用这个函数 proGeek(2, 3, 5); ?> |
输出
1 | The product is 30 |
为函数参数设置默认值
PHP允许我们为函数参数设置默认参数值。如果我们没有为一个具有默认值的参数传递任何参数,那么PHP将在函数调用中使用该参数的默认设置值。
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php // 带有默认参数的函数 function defGeek($str, $num=12) { echo "$str is $num years old \n"; } // 调用这个函数 defGeek("Ram", 15); // 在此调用中,默认值为12 defGeek("Adam"); ?> |
输出
1 2 | Ram is 15 years old Adam is 12 years old |
在上面的例子中,参数$num有一个默认值12,如果我们在函数调用中没有为这个参数传递任何值,那么这个默认值12将被考虑。而且参数$str没有默认值,所以它是必须的。
函数返回值
函数还可以从调用程序的地方返回值。return关键字用于将值返回到程序的调用部分。返回的值可以是任何类型,包括数组和对象。return语句还标志着函数的结束,然后停止执行并返回值。
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php // 函数与三个参数 function proGeek($num1, $num2, $num3) { $product = $num1 * $num2 * $num3; return $product; //返回的产品 } // 存储返回值 $retValue = proGeek(2, 3, 5); echo "The product is $retValue"; ?> |
输出
1 | The product is 30 |
传递给函数的参数
PHP允许我们以两种方式将参数传递给函数:
- 传递值:在使用传递值传递参数时,参数的值在函数内发生更改,但函数外的原始值保持不变。这意味着将原始值的副本作为参数传递。
- 通过引用传递:在通过引用传递参数时,将传递原始值。因此,原始值被改变。在pass by reference中,我们实际上传递了值的地址,它是使用&符号(&)存储的。
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php // 按值传递 function valGeek($num) { $num += 2; return $num; } // 按引用传递 function refGeek(&$num) { $num += 10; return $num; } $n = 10; valGeek($n); echo "The original value is still $n \n"; refGeek($n); echo "The original value changes to $n"; ?> |
输出
1 2 | The original value is still 10 The original value changes to 20 |
如果你发现任何不正确的地方,请写评论,或者你想分享更多关于上面讨论的话题的信息。