PHP類(三)-類的封裝
阿新 • • 發佈:2017-12-30
bubuko php 執行 rom 方法 .com 賦值 訪問 and
設置私有成員
使用private關鍵字來設置私有成員,完成對成員的封裝,封裝後的成員在對象的外部不能被訪問,如果訪問會出現錯誤,在對象的內部能訪問被封裝的成員屬性和方法。
<?php class Person{ //封裝屬性 private $name; private $age; private $sex; function __construct($name="Tom",$age=23,$sex="Male"){ $this->name = $name; $this->age = $age; $this->sex = $sex; } function Say(){ echo "My name is ".$this->name.",and my age is ".$this->age.",sex is ".$this->sex; } private function Walk(){ echo $this->name." is Walk."; } } $p1 = new Person(); $p1->Say(); $p1->Walk(); $p1->age = 25; ?>
執行結果
My name is Tom,and my age is 23,sex is Male Fatal error: Call to private method Person::Walk() from context ‘‘ in C:\phpStudy\WWW\php\lei\FengZhuang.php on line 25 Fatal error: Cannot access private property Person::$age in C:\phpStudy\WWW\php\lei\FengZhuang.php on line 26
私有成員的訪問
在對象外如果想獲取私有屬性的值,或者想給私有屬性賦值,可以使用public關鍵字或者在對象內部聲明一些操作私有屬性的方法
類中的構造方法默認為公有方法,構造方法不要設置成私有的
<?php class Person{ private $name; private $age; private $sex; function __construct($name="Tom",$age=23,$sex="Male"){ $this->name = $name; $this->age = $age; $this->sex = $sex; } function Say(){ echo "My name is ".$this->name.",and my age is ".$this->age.",sex is ".$this->sex; echo "<br>"; } public function Walk(){ echo $this->name." is Walk."; echo "<br>"; } public function SetAge($age){ if($age >100 || $age <0) return; else $this->age = $age; return $this->age; } } $p1 = new Person(); $p1->Say(); $p1->Walk(); $p1->SetAge(53); ?>
運行結果
PHP類(三)-類的封裝