4-1 减少PHP魔法函数的使用 __get($name)返回私有变量 取执行时间

魔法函数执行时间0.635

<?php

class Test{
    private $var=‘123‘;
    public function __get($name)
    {
        return $this->var;
    }

}
function current_time(){
    list($usec,$sec)= explode(‘ ‘,microtime());
    return ((float)$usec+(float)$sec);
}
$_start=current_time();
$i=0;
while ($i<20000){
    $i++;
    $t=new Test();
    $t->var;
}
$_end=current_time();
header(‘Content-Type:text/html;charset=utf‘);
echo ‘执行时间‘.number_format($_end-$_start,3);

public直接获取执行时间为

<?php

class Test{
   // private $var=‘123‘;
    public $var=‘123‘;
 /*   public function __get($name)
    {
        return $this->var;
    }*/

}
function current_time(){
    list($usec,$sec)= explode(‘ ‘,microtime());
    return ((float)$usec+(float)$sec);
}
$_start=current_time();
$i=0;
while ($i<20000){
    $i++;
    $t=new Test();
    $t->var;
}
$_end=current_time();
header(‘Content-Type:text/html;charset=utf‘);
echo ‘执行时间‘.number_format($_end-$_start,3);

时间: 2024-10-17 00:18:40

4-1 减少PHP魔法函数的使用 __get($name)返回私有变量 取执行时间的相关文章

操作数据库的魔法函数

function bind(){ global $dbhost,$dbuser,$db,$dbpass; //首先我们不知道外面会传入多少个参数//可以用func_get_args()方法来获取全部传入参数,这个方法返回全部参数的数组//和func_get_args()方法相对应的其实还有一个func_num_args()来获取参数个数$args = func_get_args(); //通过使用array_shift方法,使传入的第一个参数,后后面的参数分开,其实就是把sql语句,和//后面传

php使用魔法函数和不使用魔法函数比较

/** * use magic 0.31868386268616s * not use magic 0.11876797676086s */ class Test { private $varstr = "123"; function __get($name) { return $this->varstr; } } function microtime_float() { list($usec, $sec) = explode(" ", microtime()

PHP魔法函数与变量

__invoke()    该魔术方法会在将一个对象作为函数调用时被调用:    __callStatic()    则会在调用一个不存在的静态方法时被调用. PHP魔法函数与变量 来源:http://ruby8.iteye.com/blog/626982 1:魔法函数 __construct() 实例化对象时被调用. 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. __destruct() 当删除一个对象或对象操作终止时被调用. __

php魔法函数与魔法常量的说明

魔术函数 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用: 若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时, 若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个对象的属性

python魔法函数的一些疑问

看了魔法函数,有一点疑问.1中需要用self.word才能执行,而2直接用self就可以执行.而1中Word继承了int基本类型,但在__new__时并没有什么卵用.当用 Word(“123”)来实例化时,看到的运算结果是以字符串形式来进行运算的,比如“123”*3=123123123. 1. class Word(int): def __new__(cls, word): word = int(word) return int.__new__(cls,word) def __init__(se

python内置函数和魔法函数

内置方法:Python中声明每一个类系统都会加上一些默认内置方法,提供给系统调用该类的对象时使用.比如需要实例化一个对象时,需要调用该类的init方法:使用print去打印一个类时,其实调用的是str方法等等. init(self, …):初始化对象class,在创建新对象时调用.在方法里,可以初始化该对象的属性,否则调用其他时可能出“现has no attribute”错误: del(self):释放对象,在对象被虚拟机删除之前调用: new(cls,*args,**kwd):实例的生成操作,

python魔法函数之__getitem__

魔法函数会增强python类的类型,独立存在 class Company: def __init__(self, employees): self.employees = employees def __getitem__(self, item): return self.employees[item] company = Company(['a', 'b', 'c']) for val in company: print(val) company1 = company[:2] for val

Python的魔法函数系列 __getattrbute__和__getattr__

  #!/usr/bin/env python # -*- coding: utf-8 -*- import sys __metaclass__ = type """ __getattr__ 和 __getattribute__ 的区别 """ class ClassName: def __init__(self, name, info={}): self.name = name self.info = info # def __getattri

gj3 Python数据模型(魔法函数)

3.1 什么是魔法函数 类里面,实现某些特性的内置函数,类似 def __xx__(): 的形式. 不要自己定义XX,并不是和某个类挂钩的 class Company(object): def __init__(self, employee_list): self.employee = employee_list # 可迭代 def __getitem__(self, item): return self.employee[item] # 长度,实现了len函数 def __len__(self