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>