PHP类和对象
1. 类的成员:属性方法常量
属性,常量:用来保存数据 方法:用来存放执行的代码
注意:在方法内部得到对象的属性,不能直接echo,需要使用$this来访问。
2. 堆属性和方法的访问控制是通过在前面添加关键字:
Public 在任何地方都可以访问(包括类的内部和类的外部)
Private 私有的,只能在类的内部访问
Protected 受保护的,只能在当前类内和他的子类或者父类中访问(继承的时候使用)
3. 类的常量的定义: const 常量名 = 常量值
例如:const a=’常量’
访问常量: 类名::常量名
例如:class a{
Const a=’定义常量’;
Public function test( ){
Echo a::a; //类名为a 常量名为a 输出结果:定义常量
}
}
4. 范围解析操作符: ::用于访问静态属性,方法和常量
5. 魔术方法:
属于类的常用魔术方法:
__construct( ): 当我们需要一个类,但是没有这个类,会自动的加载,这样脚本引擎在php出错前,有了最后一次加载所需的类。在调用这个函数时,会将当前所需的类名,以参数的形式传递到函数中去。
__desctruct( ) : 析构函数,对象注销的时候自动的调用析构函数,通常在对象注销的时候释放数据库链接。
__autoload( ) :当我们实例化一个类,但是没有找到这个类的定义,会自动的调用__autoload这个魔术方法,提供了一个契机,在php报错之前还有最后一次机会加载这个类。在调用这个魔术方法的时候,会自动的将需要的类名以参数的形式传递到了函数中去。
__toString( ):当我们echo 对象的时候,会报错,这个时候 __autoload( )提供一个契机,在报错之前,获得一个字符串。
6. 构造方法():构造方法,实例化一个类的对象时,会自动的先调用这个方法。
7. 析构函数():php的对象被销毁时(脚本执行完毕)调用这个函数
8. 如果在实例化一个类的对象时传递参数,意味着向类的构造函数传递参数。
9. 对象之间赋值是引用传递;
10. php有两种方法获得新对象:(1)通过类实例化对象(2)clone(获得的是不同的对象)
11. 面向对象3大特性:
1. 封装性:封装就是将自然实体(特征)采用计算机面向对象的语言去描述,将自然语言抽象成计算机及语言的过程。
2. 继承性:有必要将相同的代码提取出来,然后在需要的地方加载,通过类的继承来实现。
3. 多态性:多态是面向对象的一种特性,但是在php这种弱类型的语言中,体现的不是很明显。多态就是同一个对象的多种状态。
12. 静态属性:
1. 面向对象的编程中,我们可以通过对象访问方法和属性,还可以通过类来访问它的成员,这样的方法和属性就是静态的
2. 定义类的静态属性,需要增加static关键字
3. 静态属性可以在静态方法中访问,也可以在非静态方法中访问
4. 类的每个实例都可以访问类中定义的静态方法,不能访问静态属性,因为静态属性属于类。
13. 设计模型:
工厂模式:负责生产对象,用的最多的地方就是根据条件动态创建对象
单例模式:我们操作数据库的对象,只需要一个(连接一次就够了),当一个类,使用一次就能够完成功能的话,我们需要保证实例化一次对象就够了。