php基础知识02函数
程序员文章站
2022-04-21 11:37:21
...
关于函数的基础知识
函数声明与调用
function fnArea() {
return 20.5;
}
echo fnArea();
参数的传递方式
- 按值传递参数
function fnArea($pi,$r){
return $pi * $r * $r;
}
echo fnArea(3.14,10);
- 按引用传递参数
function fnArea(&$pi) {
$pi ++;
}
$mypi = 3.14;
fnArea($mypi); //传递的实参必须是变量
echo $mypi; //4.14,pi就像mypi的影子,$pi的数据是和$mypi对应的
- 可变参数
传入的实参不确定,不设置形参,通过提供的函数获取实参- func_num_args() 返回参数个数
- func_get_arg(索引) 返回参数列表的某一项
function fnList() {
$count = 0;
for ($i = 0; $i < func_num_args(); $i++) {
$count += func_get_arg($i);
}
return $count;
}
echo fnList(1,2,3); //6,这里通过将传入的参数累加
- 默认参数
实参数量少于形参数量,通过设置默认形参
function fnArea ($r, $pi=3.14) { //位置不能动,仅只能在右边设值
return $pi * $r * $r;
}
echo fnArea(10);
作用域
- 局部作用域
- 函数内部的变量称为局部变量,传递过来的形参,函数内部声明的变量
- 外部无法访问函数内部的局部变量,仅可以在函数内部访问
function fnList($name) {
$count = 1;
echo $name . '第' . $count . '次访问</br>';
}
fnList('sea');
echo $count; // Notice: Undefined variable: count 报错
echo $name; // Notice: Undefined variable: name 报错
- 全局作用域
- 在函数外部声明的变量可以在函数内部使用,在 php 中需要手动开启
- 使用 global 关键字的变量,在函数内部对此变量进行赋值,随着更改而更改,是同一个变量
$count = 10;
function fnList($name) {
global $count;
echo $name . '第' . $count . '次访问</br>';
$count++;
}
fnList('sea');
echo $count; //11
- 静态变量
- 静态变量会使函数被调用多次时,内部的这个变量不会被销毁
- 此变量的作用域不改变,还是在函数内部
function fnList($name) {
static $count = 1;
echo $name . '第' . $count . '次访问</br>';
$count++;
}
fnList('sea'); //sea第1次访问
fnList('sea'); //sea第2次访问
fnList('sea'); //sea第3次访问