ASCII码 ASCII码

php基础知识02函数

发布于:2021-12-15 11:20:30  栏目:技术文档

关于函数的基础知识

函数声明与调用

  1. function fnArea() {
  2. return 20.5;
  3. }
  4. echo fnArea();

参数的传递方式

  • 按值传递参数
  1. function fnArea($pi,$r){
  2. return $pi * $r * $r;
  3. }
  4. echo fnArea(3.14,10);
  • 按引用传递参数
  1. function fnArea(&$pi) {
  2. $pi ++;
  3. }
  4. $mypi = 3.14;
  5. fnArea($mypi); //传递的实参必须是变量
  6. echo $mypi; //4.14,pi就像mypi的影子,$pi的数据是和$mypi对应的
  • 可变参数传入的实参不确定,不设置形参,通过提供的函数获取实参
    • func_num_args() 返回参数个数
    • func_get_arg(索引) 返回参数列表的某一项
  1. function fnList() {
  2. $count = 0;
  3. for ($i = 0; $i < func_num_args(); $i++) {
  4. $count += func_get_arg($i);
  5. }
  6. return $count;
  7. }
  8. echo fnList(1,2,3); //6,这里通过将传入的参数累加
  • 默认参数实参数量少于形参数量,通过设置默认形参
  1. function fnArea ($r, $pi=3.14) { //位置不能动,仅只能在右边设值
  2. return $pi * $r * $r;
  3. }
  4. echo fnArea(10);

作用域

  • 局部作用域
    • 函数内部的变量称为局部变量,传递过来的形参,函数内部声明的变量
    • 外部无法访问函数内部的局部变量,仅可以在函数内部访问
  1. function fnList($name) {
  2. $count = 1;
  3. echo $name . '第' . $count . '次访问</br>';
  4. }
  5. fnList('sea');
  6. echo $count; // Notice: Undefined variable: count 报错
  7. echo $name; // Notice: Undefined variable: name 报错
  • 全局作用域
    • 在函数外部声明的变量可以在函数内部使用,在 php 中需要手动开启
    • 使用 global 关键字的变量,在函数内部对此变量进行赋值,随着更改而更改,是同一个变量
  1. $count = 10;
  2. function fnList($name) {
  3. global $count;
  4. echo $name . '第' . $count . '次访问</br>';
  5. $count++;
  6. }
  7. fnList('sea');
  8. echo $count; //11
  • 静态变量
    • 静态变量会使函数被调用多次时,内部的这个变量不会被销毁
    • 此变量的作用域不改变,还是在函数内部
  1. function fnList($name) {
  2. static $count = 1;
  3. echo $name . '第' . $count . '次访问</br>';
  4. $count++;
  5. }
  6. fnList('sea'); //sea第1次访问
  7. fnList('sea'); //sea第2次访问
  8. fnList('sea'); //sea第3次访问
相关推荐
阅读 +