用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2348|回复: 1
收起左侧

类机制问题

[复制链接]
发表于 2012-3-15 14:11:35 | 显示全部楼层 |阅读模式
先来2个类
PHP复制代码
 
class test1{
 
    protected $arr = array();
 
    function __construct($arr){
        $this->arr = $arr;
    }
 
    function t1(){
        //use $this->arr
    }
 
    function t2(){
        //use $this->arr
    }
 
}
 
 
复制代码

PHP复制代码
 
class test2{
 
    function get_arr(){
        //get $arr from data
        return $arr;
    }
 
    function t1(){
        //use $this->get_arr())
    }
 
    function t2(){
        //use $this->get_arr()
    }
 
}
 
 
复制代码


这2个类的区别就是得到源数据的区别
test1  是直接存在类属性中,初始化后就存在
test2 是通过get_arr函数从文件中获得

现在的问题是,
一:如果都调用一个类中函数(如 t1),test1类除了源数据$arr比test2进来得比较早(test1初始化时源数据$arr就有了,而test2是需要调用get_arr才能得到初始化数据$arr)外还有什么差别(只效率与内存上)
二:这个主要的,就是如果一个页面都调用了t1和t2,test1类的arr数据应该只存在一份,test2的数据调用了2次get_arr,是否在内存中存在两个$arr数组??如果是这样的话是不是就放在类属性中比较好了?

求解答{:soso_e113:}

发表于 2012-3-16 19:25:01 | 显示全部楼层
个人感觉,test2中get_arr函数是为了获得实时数据,如果在运行过程中数据都不发生变化,自然将数据作为类属性 效率比较高

本版积分规则