初始化
在 PHP5 中对象必须声明,使用 class
关键字声明对象,类是可以包含属性和方法的结构:
class obj {
# code
}
在对象中声明的变量叫做对象的 属性
:
# public: 任何地方都可以访问
# private: 只能由类自身访问
# protected: 在类自身或者父类或者继承类中可以访问
class obj {
public $message = "PHP语法真奇怪!";
private $flag = true;
}
在对象中声明的函数叫做对象的 方法
:
class obj {
function show(){
echo 'hello!';
}
}
创建
在 PHP5 中通过 new
关键字创建一个对象:
class obj {
public $message = "PHP语法真奇怪!";
private $flag = true;
function show(){
echo 'hello!';
}
}
# 第一种方法
$demo = new obj();
# 第二种方法(不推荐太奇怪了)
$demo = new obj;
使用
在 PHP5 中通过 ->
关键符访问属性与方法:
# 声明
class obj {
public $message = "PHP语法真奇怪!";
private $flag = true;
function show(){
echo 'hello!';
}
}
# 创建
$demo = new obj();
# 访问属性
echo $demo -> message;//PHP语法真奇怪!
echo $demo -> flag;//Error()
# 访问方法
$demo -> show();//hello!
this指针
在 PHP5 中变量 $this
用于引用当前实例化的对象:
# 声明
class obj {
public $message = "PHP语法真奇怪!";
function show(){
echo $this -> message;
}
}
# 创建
$demo = new obj();
# 测试
$demo -> show();//PHP语法真奇怪!
继承
PHP5 的对象模型也使用了继承,继承将会影响到类与类,对象与对象之间的关系。通过 extends
子句完成(子类中同名函数将会覆盖掉父类中的同名函数)。
除非使用了自动加载,否则一个类必须在使用之前被定义。如果一个类扩展了另一个,则父类必须在子类之前被声明。此规则适用于类继承其它类与接口。
# 声明对象(A)
class A {
public $message = 'PHP是世界上最好的语言';
public function fun($e){
echo 'A:' . $e .'';
}
}
# 对象 B 继承对象 A
class B extends A {}
# 创建
$A = new A();
$B = new B();
# 利用继承使 B 对象拥有 A 对象的属性与方法
$B -> fun('hello,B');//A:hello,B