函数

  1. 方法与函数区别

    1. 凡是'function'关键字定义的结构都叫函数;
    2. 类(class)当中定义的函数(function)又叫方法;
    3. 方法一定是函数,函数不一定是方法;
  2. 匿名(闭包)函数

     # 基本用法(举例:将时间戳转化为秒数)
     $date = '2008-10-10';
     $time = function($date){
         return strtotime($date);
     }
     echo $time;
    
     # 直接通过 定义为 匿名(闭包)函数 的 变量名称 来调用(举例:将'_'后面首个字母转为大写)
     $str = 'user_base_info';
     $regular = '/_([a-z]{1})/';
     $str = preg_replace_callback($regular, function($match){return strtoupper($match[1]);}, $str);
     echo $str;
    
  3. 闭包函数传递参数、引用

     //不考虑参数传递
     $function = function () {
         return 'string1';
     };
     var_dump($function());
    
     //不使用use传递参数
     $string = 'string2';
     $function = function ($string) {
         return $string;
     };
     var_dump($function($string));
    
     //不使用use传递引用
     $string = 'string3';
     $function = function (&$string) {
         return $string;
     };
     var_dump($function($string));
    
     //使用use传递参数
     $string = 'string4';
     $function = function () use ($string) {
         return $string;
     };
     var_dump($function());
     //使用use传递引用
     $string = 'string5';
     $function = function () use (&$string) {
         return $string;
     };
     var_dump($function());
     //混合传递参数
     $str = 'string6';
     $string = 'string7';
     $function = function ($str1) use ($string) {
         return $str1 . ',' . $string;
     };
     var_dump($function($str));
     //混合传递参数、引用1
     $str = 'string6';
     $string = 'string7';
     $function = function (&$str2) use ($string) {
         return $str2 . ',' . $string;
     };
     var_dump($function($str));
     //混合传递参数、引用2
     $str = 'string6';
     $string = 'string7';
     $function = function ($str3) use (&$string) {
         return $str3 . ',' . $string;
     };
     var_dump($function($str));
     //混合传递引用
     $str = 'string6';
     $string = 'string7';
     $function = function (&$str4) use (&$string) {
         return $str4 . ',' . $string;
     };
     var_dump($function($str));
    
@耿志环 2012-∞ 冀ICP备17033181号, powered by Gitbook修订: 2018-05-23 16:25:59

results matching ""

    No results matching ""