加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 智能数字人、图像技术、AI硬件、数据采集、AI开发硬件!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中的函数运用函数

发布时间:2023-11-11 10:32:14 所属栏目:PHP教程 来源:互联网
导读:   一、函数的声明



  1、语法结构



   代码如下



  1 function 函数名 (参数列表)



  {



   函数体; //可选



   返回值; //return可选
  一、函数的声明
 
  1、语法结构
 
   代码如下
 
  1 function 函数名 (参数列表)
 
  {
 
      函数体; //可选
 
      返回值; //return可选
 
  }
 
      参数列表用逗号隔开,勿遗漏$变量符号
 
      函数名不区分大小写,规则与变量一致
 
      函数调用才执行,可先调用后声明
 
      函数名不能重名,包括系统函数
 
  2、函数调用
 
   代码如下
 
  1 function sum($x,$y) //形参:在声明函数时声明的参数
 
  {
 
      // $x = 1; //如果在函数内对参数赋值,则会覆盖实参。
 
      // $y = 2;
 
      $sum = 0;
 
      $sum = $x + $y;
 
      return $sum; //执行到return函数结束,后面不再执行
 
  }
 
  2 sum();
 
  sum(2,2); //实参:在调用函数时传递给形参的数值
 
  echo sum(2,2); //通过return返回数据可作为值使用
 
  二、函数中的变量
 
  1、变量范围
 
      局部变量:函数内部声明与使用的变量
 
      全局变量:在函数外声明,脚本任何地方均可以使用
 
  Tips:在PHP函数中使用全局变量,要通过global关键字将这个全局变量包含到函数中才能使用
 
   代码如下
 
  1 $a = 1;
 
  $b = 2;
 
  function demo($a = '')
 
  {
 
      //global 须放在前面
 
      //global $a,$b global 可包含多个全局变量
 
      //$GLOBALS['a'] //声明全局变量 方法二
 
      global $a;
 
      $a += 5;
 
      echo $a;
 
  }
 
  2 demo();
 
  2、PHP静态变量
 
      静态变量可以在同一个函数中多次调用中共用
 
      静态变量只能在函数或类中声明,不能在全局声明。
 
   代码如下
 
  1 function demo($a = '')
 
  {
 
      static $a = 0; //定义静态变量
 
      $a++;
 
      echo "$a
 
  ";
 
  }
 
  demo(); //输出1
 
  demo(); //输出2
 
  3、变量函数
 
   代码如下
 
  1 $var = 'hello'; //变量名后面右括号,就寻找与变量值同名的函数
 
  $var(); //等价于 hello();
 
  三、函数分类及声明
 
  1、函数分类
 
   代码如下
 
  1 //常规函数
 
  bool copy(string source,string dest)
 
  2 //带mixed,表示可以传任何类型的数据
 
  bool chown(string filename,mixed user)
 
  3 //带&参数的函数,这个参数只能是变量,变量值是动态的
 
  //对数组进行排序,数组的索引保持和单元的关联
 
  bool arsort ( array &$array [, int $sort_flags ] )
 
  $fruits = array('a', 'c', 'b');
 
  arsort($fruits);
 
  var_dump($fruits);
 
  4 //默认函数,即带[]中括号的函数,表示参数可选,若没有传值则使用默认值
 
  //如果调用没有赋值,又没有初值则出现警告
 
  function demo($a=1,$b=2)
 
  {
 
      #code
 
  }
 
  demo();
 
  5 //带有...参数的函数,表示可以传任意多个参数
 
  //在数组开头插入一个或多个单元
 
  int array_unshift ( array &$array , mixed $var [, mixed $... ] )
 
  2、声明多个参数函数
 
   代码如下
 
  1 function Test()
 
  {
 
      echo func_num_args();
 
  }
 
  Test('a','b','c');  // 3
 
  2 func_get_arg():返回参数列表中的第N个参数
 
  3 function Test()
 
  {
 
      echo func_get_arg('1');
 
  }
 
  Test('a','b','c'); //b
 
  使用实例
 
   代码如下
 
  1 function cls_mysql()
 
  {
 
      $mysql = func_get_args();
 
      $conn = mysql_connect($mysql['0'], $mysql['1'], $mysql['2']);
 
  }
 
  cls_mysql('localhost:3306', 'root', '123456');
 
  3、函数注释规范
 
   代码如下
 
  1 /**
 
   * 用用演示函数 //函数功能,决定是否使用
 
   *
 
   * @static
 
   * @access public
 
   * @param string $attributeName 属性名称 //函数参数,决定怎样调用
 
   * @return string //函数的返回值,决定调用后怎么处理
 
   */
 
  public function demo($attributeName)
 
  {
 
      $attributeName = 'abc';
 
      return $attributeName
 
  }
 
  四、Callback 回调函数
 
  我们自定义一个函数A,但是我们不直接去调函数A,而是在函数B中去调用函数A,函数B通过接收函数A的名字和参数来实现对函数A的调用,函数A称为回调函数。
 
   代码如下
 
  1 function A($x,$y)
 
  {
 
      return $x*$y;
 
  }
 
  function B($a,$b,$fun)
 
  {
 
      return $a+$b+$fun($a,$b);
 
  }
 
  echo B(2,3,"A");
 
  PHP回调函数的实现方法
 
  php提供了两个内置函数call_user_func()和call_user_func_array()提供对回调函数的支持
 
   代码如下
 
  1 //mixed call_user_func_array 以数组的形式接收回调函数的参数
 
  mixed call_user_func_array ( callable $callback , array $param_arr )
 
  call_user_func_array('f1',array('A','B'));
 
  2 //call_user_func的参数个数根据回调函数的参数来确定
 
  mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
 
  call_user_func_array('f1','A','B');
 
  实例:
 
   代码如下
 
  1 //普通全局函数
 
  function f1($arg1,$arg2)
 
  {
 
      echo $arg1."
 
  ".$arg2."
 
  ";
 
  }
 
  2 echo "通过call_user_func_array调用函数f1:
 
  ";
 
  call_user_func_array('f1',array('A','B'));
 
  3 echo "通过call_user_func调用函数f1:
 
  ";
 
  call_user_func('f1','C','D');
 
  4 //类
 
  class myClass
 
  {
 
      public $name;
 
      function show($arg1)
 
      {
 
          echo '参数名:'.$arg1."
 
  ";
 
          echo '对象中的成员名:'.$this->name;
 
          echo "
 
  ";
 
      }
 
      function show1($arg1,$arg2)
 
      {  
 
          echo $arg1."
 
  ".$arg2."
 
  ";
 
      }
 
      public static function show2($arg1,$arg2)  
 
      {
 
          echo $arg1."
 
  ".$arg2."
 
  ";
 
      }
 
  }
 
  5 echo "调用类中非静态成员函数,该成员函数中有this调用了对象中的成员:
 
  ";
 
  $a = new myClass;
 
  $a->name = 'F';
 
  call_user_func_array(array($a,'show'),array('E'));
 
  6 echo "调用类中非静态成员函数,该函数没有调用对象中的成员,没有this:
 
  ";
 
  call_user_func_array(array('myClass','show1'),array('G','H'));
 
  7 echo "调用类中静态成员函数:
 
  ";
 
  call_user_func_array(array('myClass','show2'),array('I','J'));
 
  五、内部函数
 
  在函数内部再声明函数,目的是在函数内部调用,用来帮助外部函数完成一些子功能
 
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章