fbug 发表于 2015-8-29 13:49:02

PHP成员变量作用域的限制-private

  使用PHP编写个类,我们应该尽量避免动态改变类的成员变量,而将成员变量作用于定位private,使用get和set方法来获取这些成员变量,如



1 <html>
2       <body>
3         <?php
4            class Man {
5                  private $name;
6                  
7                  function getName() {
8                      return 'Mr/Mrs ' . $this->name;
9                  }
10                  
11                  function setName($name) {
12                      $this->name = $name;
13                  }
14            }
15            
16            $man = new Man();
17            $man->naem = 'Jack';
18            
19            var_dump($man);
20         ?>
21       </body>
22   </html>
  使用private主要用途有2个
  1.假如我们不这样写,会有什么问题,也许有一天你在设置名字的时候你写错了,注意红字部分,name写成了naem,看看输出结果

  object(Man)#1 (2) { ["name":"Man":private]=> NULL ["naem"]=> string(4) "Jack" }

  PHP不会报错,直接给$man实例增加了一个naem属性,这显然不是我们想要的
  本来这种不需要声明却可以直接使用变量的特性在这里却埋下了隐患,所以一定要注意这一点
  
  2.使用private可以强制在获取或者设置属性使用get和set方法,并且在方法内对属性做一些处理,如上述的get方法
页: [1]
查看完整版本: PHP成员变量作用域的限制-private