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

[已解决] CI_Model继承类的属性

[复制链接]
发表于 2015-1-22 12:05:47 | 显示全部楼层 |阅读模式
本帖最后由 daweilang 于 2015-1-22 12:03 编辑

之前在公司用ecmall进行二次开发,自己写管理平台的时候就用了ci的框架加上ecmall的一些架构。

ecmall操作数据表都是封装成db的model,一个表就是一个model,所以自己的管理平台也是这样做的。

每个表都在models下有个对应的db_mdl.php,开始时候每个表的mdl都继承CI_Model,虽然这样使用起来很方便,不过这样会有很多重复代码,
比如基础的增删改查,所以在core下面建了MY_Model文件,不需要使用DB的会继承MY_Model。
PHP复制代码
 
class MY_Model extends CI_Model
{
    /**
     * 构造函数
     *
     * @access  public
     * @return  void
     */

    public function __construct()
    {
        parent::__construct();
    }    
}
 
复制代码


需要使用DB的时候就继承 DB_Model,DB_Model继承结构同上。

但是在开发的过程中遇到了奇怪的问题,MY_Model和DB_Model,都无法使用 public,private,protected这些属性。

我印象里面一个class如果没有属性,那么默认就是public,但是如果加上public,
如“public class MY_Model extends CI_Model”,就会报“ PHP Parse error:  parse error ”,不写就没问题。

有遇到这个问题么?

发表于 2015-1-22 14:17:27 | 显示全部楼层
class 有public,private,protected 权限吗?
 楼主| 发表于 2015-1-22 15:23:24 | 显示全部楼层
xworld 发表于 2015-1-22 14:17
class 有public,private,protected 权限吗?

就是搞不清需要什么权限,
继承CI_Model的需要什么权限?
默认不是public么?

发表于 2015-1-22 17:20:55 | 显示全部楼层
不是加在class前,而是加在class里面的属性或方法前的
 楼主| 发表于 2015-1-22 17:43:15 | 显示全部楼层
擦,是我吧class属性方法权限和class搞混了。。。。
class前应该是 interface 和 abstract 。。。
写了一天代码晕了!
等会删了这贴!
发表于 2015-1-22 17:44:54 | 显示全部楼层
daweilang 发表于 2015-1-22 17:43
擦,是我吧class属性方法权限和class搞混了。。。。
class前应该是 interface 和 abstract 。。。
写了一 ...

其實可以不必刪
留著作前車之鑑也是行的
发表于 2015-1-26 09:48:17 | 显示全部楼层
这个是php的基础问题

本版积分规则