您的位置:首页 > 编程语言 > PHP开发

笔记整理 静态与非静态 继承哪一些 继承链 重写 属性方法重载 PDO

2016-03-16 12:33 603 查看

静态与非静态的区别

1.      设置出发点:静态是给类使用,非静态是给对象使用

2.      对象不能访问静态属性(对象访问属性只会去对象的内存区域(堆)找,而静态属性在代码区),对象能够访问静态方法(静态方法和普通方法都在代码区里)

3.      类能够访问普通方法(方法里面没有使用$this),类不能访问普通属性(属性是在对象空间里)

属性继承:所有的非静态属性都被继承(包括私有的非静态属性)

方法继承

1.      公有的可以被继承

2.      受保护的可以被继承        //$son->gongfu();                    //调用失败,继承成功,受保护的方法不能在类外部访问

3.      私有的不能被继承      //调用失败,继承失败,私有的方法不能被继承

继承链

1.      凡是使用了extends继承,继承是双向的。只要在继承链上,就可以对链上的其他类的公有和受保护的方法进行访问。(子类继承了父类,那么父类可以访问子类方法)

重写

当子类拥有与父类同名的方法或者属性的时候,会重写父类的属性和方法。(非私有的,包括public protected 构造方法)私有属性

属性重写

PHP子类能否继承父类的构造方法?

1.如果没有定义子类构造方法的,默认调用父类构造方法

1.      如果定义了子类的构造方法,那么就直接调用自身,也即重写父类的构造方法


属性重载

访问不存在的或者权限不够的属性的时候,触发的魔术方法,若是存在的属性(如pbulic的属性),则不会调用该方法   __get()__set()__isset()__unset()  yii框架中大量使用

方法重载

当访问一个权限不够或者不存在的方法的时候,会自动触发的方法

__call($name,$args):访问一个非静态方法两个参数方法名和参数数组

新增的__callStatic()方法则只用于静态类方法。当尝试调用类中不存在的静态方法时,__callStatic()魔术方法将被自动调用

PDO链接认证 数据增删改查 自定义结果集

预处理 

bindParam与bindValue的区别

1.      bindParam必须要先声明变量,再使用变量;bindValue可以直接使用值

2.      bindValue是一次性的,而bindParam可以无限使用(因为使用的引用传值,一旦变量的值进行改变,那么对应的组织SQL语句时所用到的变量的值也跟着改变)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php