daweilang 发表于 2015-1-22 12:05:47

CI_Model继承类的属性

本帖最后由 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。

class MY_Model extends CI_Model
{
    /**
   * 构造函数
   *
   * @accesspublic
   * @returnvoid
   */
    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 ”,不写就没问题。

有遇到这个问题么?

xworld 发表于 2015-1-22 14:17:27

class 有public,private,protected 权限吗?

daweilang 发表于 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里面的属性或方法前的

daweilang 发表于 2015-1-22 17:43:15

:L擦,是我吧class属性方法权限和class搞混了。。。。
class前应该是 interface 和 abstract 。。。
写了一天代码晕了!
等会删了这贴!

Closer 发表于 2015-1-22 17:44:54

daweilang 发表于 2015-1-22 17:43
擦,是我吧class属性方法权限和class搞混了。。。。
class前应该是 interface 和 abstract 。。。
写了一 ...

其實可以不必刪
留著作前車之鑑也是行的

57sy.com(隐身中 发表于 2015-1-26 09:48:17

这个是php的基础问题
页: [1]
查看完整版本: CI_Model继承类的属性