php如何封装类内乡通南阳的_PHP类(三)-类的封装
設置私有成員
使用private關鍵字來設置私有成員,完成對成員的封裝,封裝后的成員在對象的外部不能被訪問,如果訪問會出現錯誤,在對象的內部能訪問被封裝的成員屬性和方法。
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關鍵字或者在對象內部聲明一些操作私有屬性的方法
類中的構造方法默認為公有方法,構造方法不要設置成私有的
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 "
";
}
public function Walk(){
echo $this->name." is Walk.";
echo "
";
}
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如何封装类内乡通南阳的_PHP类(三)-类的封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sharepoint 判断用户是否存在某
- 下一篇: 从零开始编写自己的C#框架(17)——W