PHP进修笔记二: 面向对象设计   
               添加时间:2013-5-14 点击量: 
 
              public 默示全局,类内部外部子类都可以接见;

 1 <?php
 2     
 3     class Test{
 4         public  ¥name=Janking,
 5                 ¥sex=male,
 6                 ¥age=23;
 7         
 8         function __construct(){
 9             echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
10         }
11         
12          function func(){
13             echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
14         }
15     }
16 
17 
18 ¥P=new Test();
19 echo <br /><br />;
20 ¥P->age=100;
21 ¥P->name=Rainy;
22 ¥P->sex=female;
23 ¥P->func();
24 ?> 
Public
private默示私有的,只有本类内部可以应用;

 1 <?php
 2     
 3     class Test{
 4         private  ¥name=Janking,
 5                 ¥sex=male,
 6                 ¥age=23;
 7         
 8         function __construct(){
 9             ¥this->funcOne();
10         }
11         
12          function func(){
13             echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
14         }
15         
16         private function funcOne(){
17             echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
18         }
19     }
20 
21 
22 ¥P=new Test();
23 echo <br /><br />;
24 ¥P->func();
25 ¥P->age=100;        // Cannot access private property Test::¥age 
26 ¥P->name=Rainy;   // Cannot access private property Test::¥name 
27 ¥P->sex=female;   // Cannot access private property Test::¥female
28 ¥P->funcOne();      // Call to private method Test::funcOne()  context 
29 ?> 
Private
protected默示受保护的,只有本类或子类或父类中可以接见;
 和封装有关的魔术办法:
 __set():是直接设置私有成员属性值时,主动调用的办法
 __get():是直接获取私有成员属性值时,主动调用的办法
 __isset(); 是直接isset查看对象中私有属性是否存时主动调用这个办法
 __unset(); 是直接unset删除对象中私有属性时,主动调用的办法
 所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》
                     
                  
     
  
 
    
    
public 默示全局,类内部外部子类都可以接见;

1 <?php
2
3 class Test{
4 public ¥name=Janking,
5 ¥sex=male,
6 ¥age=23;
7
8 function __construct(){
9 echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
10 }
11
12 function func(){
13 echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
14 }
15 }
16
17
18 ¥P=new Test();
19 echo <br /><br />;
20 ¥P->age=100;
21 ¥P->name=Rainy;
22 ¥P->sex=female;
23 ¥P->func();
24 ?>
Public
private默示私有的,只有本类内部可以应用;

1 <?php
2
3 class Test{
4 private ¥name=Janking,
5 ¥sex=male,
6 ¥age=23;
7
8 function __construct(){
9 ¥this->funcOne();
10 }
11
12 function func(){
13 echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
14 }
15
16 private function funcOne(){
17 echo ¥this->age.<br />.¥this->name.<br />.¥this->sex.<br />;
18 }
19 }
20
21
22 ¥P=new Test();
23 echo <br /><br />;
24 ¥P->func();
25 ¥P->age=100; // Cannot access private property Test::¥age
26 ¥P->name=Rainy; // Cannot access private property Test::¥name
27 ¥P->sex=female; // Cannot access private property Test::¥female
28 ¥P->funcOne(); // Call to private method Test::funcOne() context
29 ?>
Private
protected默示受保护的,只有本类或子类或父类中可以接见;
 和封装有关的魔术办法:
 __set():是直接设置私有成员属性值时,主动调用的办法
 __get():是直接获取私有成员属性值时,主动调用的办法
 __isset(); 是直接isset查看对象中私有属性是否存时主动调用这个办法
 __unset(); 是直接unset删除对象中私有属性时,主动调用的办法
 所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》




