笔记整理 静态与非静态 继承哪一些 继承链 重写 属性方法重载 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语句时所用到的变量的值也跟着改变)
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- php xml 入门学习资料