欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php基础知识02函数

程序员文章站 2022-04-21 11:37:21
...

关于函数的基础知识

函数声明与调用

  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次访问

上一篇: SQL 存储过程

下一篇: css基础知识