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