PHP类和对象

# 成员:
类成员:类常量、静态属性、静态方法
对象成员:非静态属性、非静态方法
# 除此外,类不能包含任何其他东西!!!

# 类名、方法名、属性名均不区分大小写
# $this代表本对象,self代表本类,parent代表父类
# 类和函数均可被事先编译(仅作为最外层时)
# 类的定义必须在单一的PHP区块内,不能被多个PHP标签分割

// 构造方法
- 具有构造函数的类会在每次创建新对象时先调用此方法
void __construct([ mixed $args [, $... ]] )
- 构造方法所需参数由new实例化对象时,给类增加参数值。
- 构造方法也可以被手动调用。
- 5.3.3版本以前,支持于类名同名的方法作为构造方法。
- 两种冲突时,__construct 优先

// 析构方法
- 析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
void __destruct( void )
# 作用:释放对象所占用的资源
# 调用的时机
- 脚本结束时所有资源均被释放,包括对象
- 手动删除对象时
- 保存对象的变量被赋予新值时(任何值,包括null)
- 在使用exit()终止脚本运行时也会被调用

// 静态成员(static关键字)
- 声明类成员或方法为static,就可以不实例化类而直接访问。
- 静态成员(属性或方法)均属于类,故不能通过$this或->访问。
- 静态成员是所有对象共享,属于类。
- 静态成员用类调用,非静态成员用对象调用。
# 静态属性
- 静态属性不可以由对象通过->操作符来访问。
- 静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。 所以你可以把静态属性初始化为整型或数组,但不能指向另一个变量或函数返回值,也不能指向一个对象。
# 静态方法
- 由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。
- 用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。

posted @ 2018-08-02 23:03  maps..xy  阅读(136)  评论(0编辑  收藏  举报