本文实例分析了PHP面向对象程序设计方法。分享给大家供大家参考,具体如下:
PHP5开始支持面向对象,示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
<?php class classname{ var $attr1 ; var $attr2 ; public $attribute ; const PI = 3.14; // 构造函数 function __construct( $param = 'default' ){ echo "Constructor called with parameter $param<br />" ; } // 析构函数 function __destruct(){ echo '<br />destruct' ; } // function oper1(){ echo 'oper1<br />' ; } function oper2( $param ){ $this ->attr1 = $param ; echo $this ->attr1; } protected function oper3(){ echo 'this is protected function<br />' ; } // 禁止继承 final function oper5(){ } function __get( $name ){ return $this -> $name ; } function __set( $name , $value ){ $this -> $name = $value ; } // 静态方法 static function double( $param ){ return $param * $param ; } } $a = new classname( 'First' ); $b = new classname( 'Second' ); $c = new classname(); $c ->oper2( "hello" ); echo '<br />' ; echo $c ->attr1; echo '<br /><br />' ; echo ' Per-Class常量 classname::PI -' .classname::PI; echo '<br />静态方法: classname::double(3) - ' . classname::double(3); echo '<br />' ; // 实现继承 echo '实现继承<br />' ; class B extends classname{ function oper4(){ $this ->oper3(); // protected方法只能在 } function oper1(){ // 重载 echo 'this is class B /' s oper1. <br />'; } } $d = new B( "forth" ); $d ->oper1(); $d ->oper4(); // 接口 interface Displayable { function display(); function show(); } class C implements Displayable { function display(){ echo '这是对应接口的方法.<br />' ; } function show(){} } $e = new C(); $e ->display(); echo '检查$e是否为C的实例:' ; echo ( $e instanceof C) ? 'Yes' : 'No' ; // 克隆对象 $f = clone $e ; echo '<br /><br />可以使用__clone()方法,在使用clone关键字时调用' ; // 抽象类 abstract class E{} // $f = new E(); // 这行将报错,不能实例化抽象类 // 参数重载,多态 class F{ public $a = 1; public $b = 2; public $c = 3; function displayString( $elem ){ echo '<br />string:' . $elem ; } function displayInt( $elem ){ echo '<br />int:' . $elem ; } // 注意参数$p,是作为数组传入,必须使用下标访问 function __call( $method , $p ){ if ( $method == 'display' ){ if ( is_string ( $p [0])){ $this ->displayString( $p [0]); } else { $this ->displayInt( $p [0]); } } } } $g = new F(); $g ->display( 'abc' ); // 迭代器,读出实例的所有属性 foreach ( $g as $att ){ echo '<br />' . $att ; } // 反射 echo '<br />' ; $class = new ReflectionClass( 'F' ); echo '<pre>' ; echo $class ; echo '</pre>' ; ?> |
希望本文所述对大家PHP程序设计有所帮助。