3的单字母函数汇总,php统计时间和内存使用情况示例分享_php实例_脚本之家
分类:面向对象

复制代码 代码如下:/*** 记录和总结时间和内部存款和储蓄器使用状态* 使用方式:* * G; // 记录开始标记位* // ... 区间运行代码* G; // 记录结束标签位* echo G; // 统计区间运行时间 精确到小数后6位* echo G; // 统计区间内存使用情况* 如果end标记位没有定义,则会自动以当前作为标记位* 其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效** @param string $start 初步标签* @param string $end 甘休标签* @param integer|string $dec 小数位或许m * @return mixed*/function G($start,$end='',$dec=4) { static $_info = array(); static $_mem = array { // 记录时间 $_info[$start] = $end; }elseif{ // 总结时间和内部存款和储蓄器使用 if $_info[$end] = microtime; if(MEMORY_LIMIT_ON && $dec=='m'){ if $_mem[$end] = memory_get_usage(); return number_format(($_mem[$end]-$_mem[$start])/1024); }else{ return number_format(($_info[$end]-$_info[$start]卡塔尔国,$dec卡塔尔; } }else{ // 记录时间和内部存款和储蓄器使用 $_info[$start] = microtime; if $_mem[$start] = memory_get_usage(); }}

假定只是从精通怎么用这几函数的角度看,直接看官方揭露的文书档案就可以!不过要打听那么些函数是怎么被ThinkPHP框架定义调用的,那需要其余一番切磋了。幸而,ThinkPHP官方在源码力做了很好的批注,通过一步步商量本身发觉只要你找到代码的概念地点,你就能够更标准的握住其利用,以致不用读代码, 官方的代码注释就能够帮您很好的敞亮。废话十分少说,来看本人找的框架推行代码的多少个职责:

A函数: 用于实例化Action 格式:[项目://][分组/]模块

复制代码 代码如下:

   首先,从进口文件index.php里面来看框架的实行通过“require './ThinkPHP/ThinkPHP.php';”实行,展开那个文件,看此中的start(卡塔尔(قطر‎ 方法:

  1. /**
  2. * A函数用于实例化Action 格式:[项目://][分组/]模块
  3. * @param string $name Action财富地址
  4. * @param string $layer 调整层名称
  5. * @param boolean $common 是或不是公物目录
  6. * @return Action|false
  7. */
    1. A($name,$layer='',$common=false)

/**
 * 记录和总结时间(微秒)和内部存款和储蓄器使用情状
 * 使用办法:
 * <code>
 * G('begin'卡塔尔; // 记录起头标记位
 * // ... 区间运转代码
 * G('end'卡塔尔国; // 记录结束标签位
 * echo G('begin','end',6卡塔尔; // 计算区间运营时刻 正确到小数后6位
 * echo G('begin','end','m'卡塔尔(قطر‎; // 总计区间内部存款和储蓄器使用情形
 * 纵然end标志位未有定义,则会活动以当下看成标志位
 * 在那之中执会考察总计局计内部存款和储蓄器使用必要 MEMOPAJEROY_LIMIT_ON 常量为true才有效
 * </code>
 * @param string $start 开首标签
 * @param string $end 结束标签
 * @param integer|string $dec 小数位也许m
 * @return mixed
 */
function G($start,$end='',$dec=4) {
    static $_info       =   array();
    static $_mem        =   array();
    if(is_float($end卡塔尔国卡塔尔国 { // 记录时间
        $_info[$start]  =   $end;
    }elseif(!empty($end卡塔尔(قطر‎卡塔尔国{ // 总计时间和内部存款和储蓄器使用
        if(!isset($_info[$end])) $_info[$end]       =  microtime(TRUE);
        if(MEMORY_LIMIT_ON && $dec=='m'){
            if(!isset($_mem[$end])) $_mem[$end]     =  memory_get_usage();
            return number_format(($_mem[$end]-$_mem[$start])/1024);         
        }else{
            return number_format(($_info[$end]-$_info[$start]),$dec);
        }      

   ................................

复制代码

    }else{ // 记录时间和内部存款和储蓄器使用
        $_info[$start]  =  microtime(TRUE);
        if(MEMORY_LIMIT_ON) $_mem[$start]           =  memory_get_usage();
    }
}

      static public function start() {
     // 注册AUTOLOAD方法
     spl_autoload_register('ThinkThink::autoload');      
     // 设定错误和丰硕管理
     register_shutdown_function('ThinkThink::fatalError');
     set_error_handler('ThinkThink::appError');
     set_exception_handler('ThinkThink::appException');

B函数: 实践有些行为

     // 起始化文件存款和储蓄格局
     Storage::connect(STORAGE_TYPE);

  1. /**
  2. * 施行某些行为
  3. * @param string $name 行为名称
  4. * @param Mixed $params 传入的参数
  5. * @return void
  6. */
    1. B($name, &$params=NULL)

     $runtimefile  = RUNTIME_PATH.APP_MODE.'~runtime.php';
     if(!APP_DEBUG && Storage::has($runtimefile)){
         Storage::load($runtimefile);
     }else{
         if(Storage::has($runtimefile))
             Storage::unlink($runtimefile);
         $content =  '';
         // 读取应用情势
         $mode   =   include is_file(CONF_PATH.'core.php')?CONF_PATH.'core.php':MODE_PATH.APP_MODE.'.php';
         // 加载核心文件
         /*Array
(
   [0] => C:wampwwwonthinkThinkPHP/Common/functions.php
   [1] => ./Application/Common/Common/function.php
   [2] => C:wampwwwonthinkThinkPHPLibrary/Think/Hook.class.php
   [3] => C:wampwwwonthinkThinkPHPLibrary/Think/App.class.php
   [4] => C:wampwwwonthinkThinkPHPLibrary/Think/Dispatcher.class.php
   [5] => C:wampwwwonthinkThinkPHPLibrary/Think/Route.class.php
   [6] => C:wampwwwonthinkThinkPHPLibrary/Think/Controller.class.php
   [7] => C:wampwwwonthinkThinkPHPLibrary/Think/View.class.php
   [8] => C:wampwwwonthinkThinkPHPLibrary/Behavior/ParseTemplateBehavior.class.php
   [9] => C:wampwwwonthinkThinkPHPLibrary/Behavior/ContentReplaceBehavior.class.php
)
          */
         foreach ($mode['core'] as $file){
             if(is_file($file)) {
               include $file;
               if(!APP_DEBUG) $content   .= compile($file);
             }
         }

复制代码

         // 加载应用形式配置文件
         foreach ($mode['config'] as $key=>$file){
             is_numeric($key)?C(include $file):C($key,include $file);
         }

C函数: 获取和装置配置参数 帮忙批量概念

         // 读取当前选择形式对应的配备文件
         if('common' != APP_MODE && is_file(CONF_PATH.'config_'.APP_MODE.'.php'))
             C(include CONF_PATH.'config_'.APP_MODE.'.php');  

  1. /**
  2. * 获取和装置配置参数 帮助批量概念
  3. * @param string|array $name 配置变量
  4. * @param mixed $value 配置值
  5. * @return mixed
  6. */
    1. C($name=null, $value=null)

         // 加载形式外号定义
         if(isset($mode['alias'])){
             self::addMap(is_array($mode['alias'])?$mode['alias']:include $mode['alias']);
         }

复制代码

         // 加载应用别称定义文件
         if(is_file(CONF_PATH.'alias.php'))
             self::addMap(include CONF_PATH.'alias.php');

D函数: 用于实例化Model 格式 项目://分组/模块

         // 加载形式表现定义
         if(isset($mode['tags'])) {
             Hook::import(is_array($mode['tags'])?$mode['tags']:include $mode['tags']);
         }

  1. /**
  2. * D函数用于实例化Model 格式 项目://分组/模块
  3. * @param string $name Model能源地址
  4. * @param string $layer 业务层名称
  5. * @return Model
  6. */
    1. D($name='',$layer='')

         // 加载应用行为定义
         if(is_file(CONF_PATH.'tags.php'))
             // 允许行使扩张费用格局配置定义
             Hook::import(include CONF_PATH.'tags.php');  

复制代码

         // 加载框架底层语言包
         L(include THINK_PATH.'Lang/'.strtolower(C('DEFAULT_LANG')).'.php');

F函数: 火速文件数量读取和保存 针对轻易类型数据 字符串、数组

         if(!APP_DEBUG){
             $content  .=  "nnamespace { ThinkThink::addMap(".var_export(self::$_map,true).");";
             $content  .=  "nL(".var_export(L(),true).");nC(".var_export(C(),true).');ThinkHook::import('.var_export(Hook::get(),true).');}';
             Storage::put($runtimefile,strip_whitespace('<?php '.$content));
         }else{
           // 调节和测量试验情势加载系统暗中同意的布局文件
           C(include THINK_PATH.'Conf/debug.php');
           // 读取应用调节和测试配置文件
           if(is_file(CONF_PATH.'debug.php'))
               C(include CONF_PATH.'debug.php');          
         }
     }

  1. /**
  2. * 火速文件数量读取和保存 针对轻巧类型数据 字符串、数组
  3. * @param string $name 缓存名称
  4. * @param mixed $value 缓存值
  5. * @param string $path 缓存路线
  6. * @return mixed
  7. */
    1. F($name, $value='', $path=DATA_PATH)

上边这个打印出来的数组是本身加上去的,能够看出来,那几个数组正是ThinkPHP加载的主干文件,个中囊括  “ThinkPHP/Common/functions.php”和“ ./Application/Common/Common/function.php”;在近年来的functions.php文件之中会开采各样函数库:

复制代码

/**
* 获取和装置配置参数 扶持批量概念
* @param string|array $name 配置变量
* @param mixed $value 配置值
* @param mixed $default 默认值
* @return mixed
*/
function C($name=null, $value=null,$default=null) {
   static $_config = array();
   // 无参数时获得具有
   if (empty($name)) {
       return $_config;
   }
   // 优先奉行设置获取或赋值
   if (is_string($name)) {
       if (!strpos($name, '.')) {
           $name = strtolower($name);
           if (is_null($value))
               return isset($_config[$name]) ? $_config[$name] : $default;
           $_config[$name] = $value;
           return;
       }
       // 二维数组设置和取得帮衬
       $name = explode('.', $name);
       $name[0]   =  strtolower($name[0]);
       if (is_null($value))
           return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : $default;
       $_config[$name[0]][$name[1]] = $value;
       return;
   }
   // 批量设置
   if (is_array($name)){
       $_config = array_merge($_config, array_change_key_case($name));
       return;
   }
   return null; // 幸免地下参数
}

G函数: 记录和总括时间(微秒)和内部存储器使用景况

/**
* 抛出特别管理
* @param string $msg 非凡信息
* @param integer $code 极度代码 默以为0
* @return void
*/
function E($msg, $code=0) {
   throw new ThinkException($msg, $code);
}

  1. /**
  2. * 记录和总计时间(微秒)和内部存款和储蓄器使用情形
  3. * 使用情势:
  4. * <code>
  5. * G('begin'卡塔尔; // 记录从前标识位
  6. * // ... 区间运营代码
  7. * G('end'卡塔尔国; // 记录结束标签位
  8. * echo G('begin','end',6卡塔尔(قطر‎; // 计算区间运营时刻 正确到小数后6位
  9. * echo G('begin','end','m'State of Qatar; // 总括区间内部存款和储蓄器使用情形
  10. * 要是end标志位未有定义,则会活动以近些日子看作标志位
  11. * 在这之中总计内部存款和储蓄器使用要求 MEMO奥迪Q3Y_LIMIT_ON 常量为true才有效
  12. * </code>
  13. * @param string $start 初叶标签
  14. * @param string $end 截至标签
  15. * @param integer|string $dec 小数位大概m 
  16. * @return mixed
  17. */
    1. G($start,$end='',$dec=4)

/**
* 记录和总计时间(飞秒)和内部存款和储蓄器使用意况
* 使用方法:
* <code>
* G('begin'卡塔尔国; // 记录领头标志位
* // ... 区间运营代码
* G('end'卡塔尔(قطر‎; // 记录截至标签位
* echo G('begin','end',6卡塔尔; // 总结区间运营时刻 准确到小数后6位
* echo G('begin','end','m'卡塔尔国; // 总结区间内部存款和储蓄器使用状态
* 假使end标志位未有概念,则会自行以当下用作标志位
* 个中执会侦查总括局计内部存款和储蓄器使用须求 MEMO景逸SUVY_LIMIT_ON 常量为true才有效
* </code>
* @param string $start 起先标签
* @param string $end 截止标签
* @param integer|string $dec 小数位也许m
* @return mixed
*/
function G($start,$end='',$dec=4) {
   static $_info       =   array();
   static $_mem        =   array();
   if(is_float($end卡塔尔(قطر‎卡塔尔 { // 记录时间
       $_info[$start]  =   $end;
   }elseif(!empty($end卡塔尔国State of Qatar{ // 总结时间和内部存款和储蓄器使用
       if(!isset($_info[$end])) $_info[$end]       =  microtime(TRUE);
       if(MEMORY_LIMIT_ON && $dec=='m'){
           if(!isset($_mem[$end])) $_mem[$end]     =  memory_get_usage();
           return number_format(($_mem[$end]-$_mem[$start])/1024);
       }else{
           return number_format(($_info[$end]-$_info[$start]),$dec);
       }

复制代码

   }else{ // 记录时间和内部存款和储蓄器使用
       $_info[$start]  =  microtime(TRUE);
       if(MEMORY_LIMIT_ON) $_mem[$start]           =  memory_get_usage();
   }
}

I函数: 获取输入参数 协理过滤和暗许值

 

  1. /**
  2. * 获取输入参数 帮助过滤和暗中认可值
  3. * 使用方法:
  4. * <code>
  5. * I('id',0卡塔尔(قطر‎; 获取id参数 自动判别get也许post
  6. * I('post.name','','htmlspecialchars'); 获取$_POST['name']
  7. * I('get.'); 获取$_GET
  8. * </code> 
  9. * @param string $name 变量的名称 支持钦赐项目
  10. * @param mixed $default 空头支票的时候默许值
  11. * @param mixed $filter 参数过滤方法
  12. * @return mixed
  13. */
    1. I($name,$default='',$filter=null)

当然,C、E、G、L、T、I、N...等函数也在里头,呵呵 是或不是开掘不唯有那几个函数的概念,这里的财富只要通晓就能够准确把握应用;至于每一种函数的用法不在多说......

复制代码

 

L函数: 获取和设置语言定义(不区分朗朗上口写卡塔尔国

 

  1. /**
  2. * 获取和安装语言定义(不区分朗朗上口写卡塔尔
  3. * @param string|array $name 语言变量
  4. * @param string $value 语言值
  5. * @return mixed
  6. */
    1. L($name=null, $value=null)

**制作人:飞虎                                          

复制代码

无兄弟不编制程序!

应接加QQ群进行越来越多调换:305397511     专心于php、mysql、jquery以致开源框架**

 

 

 


M函数: 用于实例化贰个一贯不模型文件的Model

  1. /**
  2. * M函数用于实例化三个不曾模型文件的Model
  3. * @param string $name Model名称 扶助钦定底子模型 举个例子MongoModel:User
  4. * @param string $tablePrefix 表前缀
  5. * @param mixed $connection 数据库连接音信
  6. * @return Model
  7. */
    1. M($name='', $tablePrefix='',$connection='')

复制代码

N函数: 设置和取得总结数据

  1. /**
  2. * 设置和得到总结数据
  3. * 使用方法:
  4. * <code>
  5. * N('db',1卡塔尔; // 记录数据库操作次数
  6. * N('read',1卡塔尔; // 记录读取次数
  7. * echo N('db'卡塔尔(قطر‎; // 获取当前页面数据库的兼具操作次数
  8. * echo N('read'State of Qatar; // 获取当前页面读取次数
  9. * </code> 
  10. * @param string $key 标记地方
  11. * @param integer $step 步进值
  12. * @return mixed
  13. */
    1. N($key, $step=0,$save=false)

复制代码

R函数: 远程调用模块的操作方法 UEnclaveL 参数格式 [项目://][分组/]模块/操作

  1. /**
  2. * 远程调用模块的操作方法 UTiguanL 参数格式 [项目://][分组/]模块/操作
  3. * @param string $url 调用地址
  4. * @param string|array $vars 调用参数 支持字符串和数组 
  5. * @param string $layer 要调用的调整层名称
  6. * @return mixed
  7. */
    1. R($url,$vars=array(),$layer='')

复制代码

S函数: 缓存处理

  1. /**
  2. * 缓存处理
  3. * @param mixed $name 缓存名称,假设为数组表示举办缓存设置
  4. * @param mixed $value 缓存值
  5. * @param mixed $options 缓存参数
  6. * @return mixed
  7. */
    1. S($name,$value='',$options=null)

复制代码

T函数: 获取模版文件 格式 项目://分组@核心/模块/操作

  1. /**
  2. * 获取模版文件 格式 项目://分组@焦点/模块/操作
  3. * @param string $name 模版能源地址
  4. * @param string $layer 视图层(目录)名称
  5. * @return string
  6. */
    1. T($template='',$layer='')

复制代码

U函数: URubiconL组装 扶植不一致ULacrosseL情势

  1. /**
  2. * UCRUISERL组装 帮助不相同UGL450L格局
  3. * @param string $url URL表达式,格式:'[分组/模块/操作#锚点@域名]?参数1=值1&参数2=值2...'
  4. * @param string|array $vars 传入的参数,协理数组和字符串
  5. * @param string $suffix 伪静态后缀,默认为true表示收获配置值
  6. * @param boolean $redirect 是或不是跳转,假如设置为true则意味跳转到该ULANDL地址
  7. * @param boolean $domain 是不是出示域名
  8. * @return string
  9. */
    1. U($url='',$vars='',$suffix=true,$redirect=false,$domain=false)

复制代码

W函数: 渲染输出Widget

  1. /**
  2. * 渲染输出Widget
  3. * @param string $name Widget名称
  4. * @param array $data 传出的参数
  5. * @param boolean $return 是还是不是再次来到内容 
  6. * @param string $path Widget所在路径
  7. * @return void
  8. */
    1. W($name, $data=array(), $return=false,$path='')

本文由10bet手机官网发布于面向对象,转载请注明出处:3的单字母函数汇总,php统计时间和内存使用情况示例分享_php实例_脚本之家

上一篇:去除PHP代码中的空白和注释,去除php注释和去除空格函数分享10bet手机官网 下一篇:没有了
猜你喜欢
热门排行
精彩图文