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方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值