PHP面向对象程序设计类的定义与用法简单示例
本文实例讲述了PHP面向对象程序设计类的定义与用法。分享给大家供大家参考,具体如下:
<?php
classPerson{
private$name;
private$sex;
private$age;
function__construct($name="",$sex="男",$age=22){
$this->name=$name;
$this->sex=$sex;
$this->age=$age;
}
//直接为私有属性赋值时自动调用,可以屏蔽一些非法赋值
//之前有版本可以设置方法为privatefunction__set()
//Themagicmethod__set()musthavepublicvisibility
//因为5.35对魔术方法限制的严格了
publicfunction__set($propertyName,$propertyValue){
if($propertyName=="sex"){
if(!($propertyValue=="男"||$propertyValue=="女")){
return;
}
if($propertyValue>150||$propertyValue<0){
return;
}
}
//根据传入的成员属性名,赋上相应的值
$this->$propertyName=$propertyValue;
}
//用来获取私有属性
publicfunction__get($propertyName){
if(isset($this->$propertyName)){
return($this->$propertyName);
}else{
return(NULL);
}
}
publicfunction__isset($propertyName){
if($propertyName=="name"){
returnfalse;//返回假,不允许在对象外部测定这个属性
}
returnisset($this->$propertyName);
}
publicfunction__unset($propertyName){
if($propertyName=="name"){
return;//不允许删除name属性
}
unset($this->$propertyName);
}
functionsay(){
echo$this->name."在说话<br/>";
}
functionrun(){
echo"在走路·<br/>";
}
function__destruct(){
echo"goodbye".$this->name."<br/>";
}
}
$person1=newPerson();
$person2=newPerson("2");
$person3=newPerson("3");
//自动调用了__set()
$person1->name="张三";
echo$person1->name;
echo"<br/>";
echo$person1->say();
//自动调用了__get()
echo$person1->age;
echo"<br/>";
var_dump(isset($person1->name));
echo"<br/>";
unset($person1->name);
echo"unset------------>".$person1->name;//name没有被unset()
echo"<br/>";
$person2=null;
?>
结果:
张三 张三在说话 22 bool(false) unset------------>张三 goodbye2 goodbye3 goodbye张三
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。