关于thinkphp中的G方法使用

最近在研究thinkphp框架发现其中有好多东西很值得借鉴今天看了一下函数G()很适合调试出页面执行的时间和使用的内存情况具体的代码如下

<?php

/**
 * 记录和统计时间(微秒)和内存使用情况
 * 使用方法:
 * <code>
 * G(‘begin‘); // 记录开始标记位
 * // ... 区间运行代码
 * G(‘end‘); // 记录结束标签位
 * echo G(‘begin‘,‘end‘,6); // 统计区间运行时间 精确到小数后6位
 * echo G(‘begin‘,‘end‘,‘m‘); // 统计区间内存使用情况
 * 如果end标记位没有定义,则会自动以当前作为标记位
 * 其中统计内存使用需要 MEMORY_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();
    }
}

?>
时间: 2024-11-08 18:59:56

关于thinkphp中的G方法使用的相关文章

深入解析thinkphp中的addAll方法

原因: 在做中控系统中遇到了一个给用户批量分配角色的问题,刚开始想到的是循环插入,但立马给否定了,循环操作数据库开发者的大忌啊,于是查找手册找到数据写入看到批量操作:addAll(),测试成功,以为万事大吉了,但当第二次操作时提示失败,找原因,原来是数据库中已经存在的数据addAll()没有覆盖导致了错误 解决方法: 查找Thinkphp源码翻到Library/Think/Model.class.php找到了addAll方法:public function addAll($dataList,$o

ThinkPHP中的魔术方法

本文实例分析了ThinkPHP中的__initialize()和类的构造函数__construct().分享给大家供大家参考.具体分析如下: thinkphp中的__construct是不可以随便用的,因为你的模块类继承上级类,上级类有定义好的; 1.__initialize()不是php类中的函数,php类的构造函数只有__construct(). 2.类的初始化:子类如果有自己的构造函数(__construct()),则调用自己的进行初始化,如果没有,则调用父类的构造函数进行自己的初始化.

ThinkPHP中的parseDSN方法的坑记录一下

<?php/** * DSN解析 * 格式: mysql://username:[email protected]:3306/DbName * @static * @access public * @param string $dsnStr * @return array */function parseDSN($dsnStr) { if( empty($dsnStr) ){return false;} $info = parse_url($dsnStr); if($info['scheme']

thinkphp 5 count()方法在控制器,模板中的使用方法

thinkphp中关于count()方法的使用: 控制器中:echo count($arr)模板中:{$arr | count}模板中if判断语句中 <if condition="count($arr)">.....</if> 在模板中的if语句里的condition 进行大小判断 eq:等于 neq:不等于 lt:小于 gt:大于 原文地址:https://www.cnblogs.com/tine/p/8669370.html

ThinkPHP 更新数据 save方法

ThinkPHP save() 方法 ThinkPHP 中使用 save() 方法来更新数据库,并且也支持连贯操作的使用. 例子: public function update(){ header("Content-Type:text/html; charset=utf-8"); $Dao = M("User"); // 需要更新的数据 $data['email'] = '[email protected]'; // 更新的条件 $condition['userna

ThinkPHP中的模型二

ThinkPHP中的模型 1.为什么要创建数据对象 案例:使用ThinkPHP完成部门管理 ① 设计数据库 ② 创建Dept控制器 路径:./Application/Admin/Controller创建控制器 规则:DeptController.class.php 编程程序三步走 ③ 复制add.html模板到./Application/Admin/View/Dept文件夹,更改模板路径 ④ 更改View/Index/index.html左侧导航 ⑤ 获取添加功能的上级部门(使用模型) 路径:.

thinkphp中的ajax分页

thinkphp中用ajax分页和普通的ajax分页的区别在于处理位置的不同,thinkphp是在控制器的方法中处理ajax传的值,然后返回数据.下面是一个点击事件触发后,显示的内容用ajax分页. 下面的示例是同一个类别下,根据点击不同的分类显示出点击的分类的数据. 需要修改的地方用黄色背景标示. 1.ajax处理页面 $(".php_list").click(function(){//点击事件,可以根据自己的要求修改.也可以放在$(document).ready(function(

ThinkPHP中create()方法自动验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方法没有数据即返回值为fals

thinkphp中查询数据库具体的使用方法

thinkphp中数据操作方法的使用: 一.where()条件 $model->where(条件值);    //条件值就是sql语句where后边的结果值 $goods->where('goods_price>1000 and goods_name like "诺%" ');    //sql语句where后边的信息都可以作为where方法的参数 $info=$goods->select(); 二.limit()限制条件 $model->limit(数字