1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>无标题文档</title>
6 </head>
7
8 <body>
9 <?php
10 //面向对象
11
12 /*class ren
13 {
14 public $name; //一旦成员属性有其他的关键字修饰就需要去掉"var"
15 public $sex; //第二个成员属性$sex定义人的性别,此属性被封装了
16 public $age;*/
17
18 //访问成员变量的的方法。。。封装
19
20 //封装简便方法赋值 __set()方法
21
22 /*public function __set($name,$value)
23 {
24 if($name=="age")
25 {
26 if($value>18&&$value<80)
27 {
28 $this->name=$value;
29 }
30 }
31
32 $this->$name=$value;
33
34 }
35 //封装,简便方法获取值 __get()方法
36
37 public function __get($name) //
38 {
39 return $this->$name;
40 }
41
42
43 public function say()
44 {
45 echo $this ->name."这个人在说话"; //$this 表示调用对象
46 }
47
48 //构造函数
49 function __construct([参数列表]) //构造方法名称是以两个下划线开始的__construct()
50 {
51 //方法体,通常用来对成员属性进行初始化赋值
52 }
53
54 function __construct($name,$sex)
55 {
56 $this->name=$name;
57 $this->sex=$sex;
58 }
59
60 //析构函数,在对象快要销毁时自动调用,可以在里面进行释放,关闭连接等
61 function __destruct()
62 {
63 echo "该对象快要销毁了"; //方法体,通常用来完成一些在对象销毁前的清理任务
64
65 }
66
67
68 }
69
70 //final关键字,用来修饰类,如果被定义则无法被继承了
71
72
73
74 $ren=new ren("李四","女");
75 /*$ren->name="张三";
76 $ren->sex="女";*/
77 //$ren->say();
78 //
79 //$ren->$name="妞妞";*/
80
81 //继承
82 /*class student extends ren //声明一个学生类,使用extends 关键字扩展(继承)ren类
83 {
84 //重写父类方法
85
86
87 function say()
88 {
89
90 parent ::say1();
91 echo "这是子类中的方法";
92 }
93 }
94 $stu=new student ("张三","男");
95 echo $stu->name;*/
96
97 //访问类型控制3个 修饰符: 1、public(公有的访问) 2、private (私有的访问) 3、protected (保护的访问)
98
99
100 class Person
101
102 {
103
104 //下面是人的成员属性
105
106 var $name; //人的名子
107
108 var $sex; //人的性别
109
110 var $age; //人的年龄
111
112
113 //下面是人的成员方法
114
115 function say() { //这个人可以说话的方法
116
117 echo "这个人在说话<br>";
118
119 }
120
121
122
123 function run() { //这个人可以走路的方法
124
125 echo "这个人在走路<br>";
126
127 }
128
129 }
130
131
132
133 $p1=new Person();
134
135 $p2=new Person();
136
137 $p3=new Person();
138
139 // 下面三行是给$p1对象属性赋值
140
141 $p1->name = "张三";
142
143 $p1->sex = "男";
144
145 $p1->age = 20;
146
147
148 // 下面三行是访问$p1对象的成员属性
149
150 echo "p1对象的名子是:" . $p1->name;
151
152 echo "p1对象的性别是:" . $p1->sex;
153
154 echo "p1对象的年龄是:" . $p1->age;
155
156
157
158 // 下面两行访问$p1对象中的方法
159
160 $p1->say();
161
162 $p1->run();
163
164
165
166 // 下面三行是给$p2对象属性赋值
167
168 $p2->name = "李四";
169
170 $p2->sex = "女";
171
172 $p2->age = 30;
173
174
175
176 // 下面三行是访问$p2对象的属性
177
178 echo "p2对象的名子是:" . $p2->name;
179
180 echo "p2对象的性别是:" . $p2->sex;
181
182 echo "p2对象的年龄是:" . $p2->age;
183
184
185
186 // 下面两行访问$p2对象中的方法
187
188 $p2->say();
189
190 $p2->run();
191
192
193
194 // 下面三行是给$p3对象属性赋值
195
196 $p3->name="王五";
197
198 $p3->sex="男";
199
200 $p3->age=40;
201
202
203
204 // 下面三行是访问$p3对象的属性
205
206 echo "p3对象的名子是:" . $p3->name;
207
208 echo "p3对象的性别是:" . $p3->sex;
209
210 echo "p3对象的年龄是:" . $p3->age;
211
212 // 下面两行访问$p3对象中的方法
213
214 $p3->say();
215
216 $p3->run();
217
218
219
220 //类的声明
221 /*[一些修饰类的关键字]class 类名
222 {
223 类中成员:
224 }
225
226 */
227 class phone
228 { //声明电话的4个有关的成员属性
229 var $waiguan;
230 var $color;
231 var $battery;
232 var $pindax;
233
234 //以下成员方法是电话的有关成员属性
235 function call()
236 {
237 echo "正在打电话"; //方法体,
238 }
239 function message()
240 {
241 echo "正在发信息";
242 }
243 function playmusic()
244 {
245 echo "正在播放音乐";
246 }
247 function photo()
248 {
249 echo "正在拍照";
250 }
251 }
252 //实例化对象
253 //$变量名=new 类名称 ([参数数列表]); 或 $变量名 =new 类名称;
254
255 $person1=new person(); //创建第一个person类对象,引用名为$person1
256 $person2=new person(); //创建第二个。。。
257 $person3=new person();
258
259 $phone1=new phone();
260 $phone2=new phone();
261 $phone3=new phone();
262
263 //对象中成员的访问
264 //$引用名 =new 类名称 ([参数数列表]);
265 //
266 //$引用名 ->成员属性 =值;
267 //echo $引用名 ->成员方法;
268
269 //$引用名 ->成员方法;
270
271 //常见的关键字3个。。(final、static、const、、、)
272 //final :不能使用它标识成员属性
273 //static:使用格式 类名 ::静态成员属性名
274 // 类名 ::静态成员方法名();
275
276
277
278 ?>
279 </body>
280 </html>