PHP面向对象基础点
时间:2011-03-27 来源:乱舞春秋
刚接触PHP一个多月,PHP的灵活性让我感受到了C#之外的另一个世界!学习过程中有些许的知识点不甚明白,整理了一下【仅限于PHP面向对象基础语法知识】:
1, 方法参数:
如果参数数量超过方法定义参数的数量,PHP就忽略多于的参数。
2,unset(对象):
unset 销毁的是指向对象的变量,而不是这个对象。
3,构造函数:
1):子类没有构造函数时:自动调用父类的构造函数。
2):子类有构造函数时:不会自动调用父类的构造函数,手动调用【parent::__construct();】
4,重写父类方法:
子类重新父类方法时可以拥有与父类不同的参数数量;
要求:
1):当对父类的方法进行重写时,子类中的方法必须和父类中对应的方法具有相同的方法名称。
在 PHP5 中不限制输入参数类型、参数数量和返回值类型。
2):子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。
3):声明方法时,如果不定义访问权限。默认权限为 public。
5,self::
使用 self:: 关键字访问当前类的静态成员【或者类名】
6,静态方法调用非静态方法 :【被转换成静态方法了,所以才可调用】
1):PHP5 中,在静态方法中不能使用 $this 标识调用非静态方法【self::】。
2);当一个类中有非静态方法被 self:: 调用时,系统会自动将这个方法转换为静态方法
7,final:
用于类、方法前;final 类---不可被继承;final 方法---不可被覆盖。
8,常量:
类中的常量使用起来类似静态变量,不同点只是它的值不能被改变。
我们使用 类名::常量名 来调用这个常量。【常量前面没有$符号】
9,实现接口:
1):要注意只有接口和接口之间使用 继承关键字 extends。
2):类实现接口必须实现其抽象方法,使用实现关键字 implements。
10,原始类型的判断:
1):PHP 中提供了一些函数,来判断数值的类型。我们可使用 is_numeric()。判断是否是一
个数值或者可转换为数值的字符串。
2):还有 is_bool()、is_int()、is_float()、is_integer()、is_numeric()、is_string()、
is_array() 和 is_object()
11,类型提示保障数据安全 :
1):例子----function model(类型名 name);
2) :建议在定义方法参数时,要使用类型提示。
3):如果类型不是对象,要采用代码进行类型建议,以增强安全性。
12, instanceof 运算符的运用 :
1):对象 instanceof 类型;判断对象是否是该类型的对象;
感觉PHP的面向对象是为了“面向对象”而面向对象的。本来灵活的语言,被些许规则约束起来了,感觉有些别扭【比如接口,抽象类】,仅是个人观点。