<?php
#创建一个ren()的类,
class ren{
private $name;##定义成员属性
private $sex;##定义成员属性
private $age;##定义成员属性
/*__construct声明一个析构函数,将在创建对象时,为对象的成员属性赋初始值。*/
function __construct($name="无名",$sex="男",$age="25")
{
$this->name = $name;##使用"$this"引用自身对象的变量;
$this->sex = $sex;
$this->age = $age;
}
function __set($proname,$provalue){
if($proname=="sex"){
if($provalue=="男"){
return;
}
}
if($proname=="age"){
if($provalue > 80 || $provalue < 0){
return;
}
}
$this->$proname=$provalue;
}
function say()##定义成员方法
{
echo "姓名:" . $this->name . "\n性别:" . $this->sex . "\n年龄:" . $this->age;
}
}
/*定义对象时,规定参数。__set不起作用,获取的值都是参数。*/
$per = new ren("李四","女","100");
$per->say();
echo "\n----------------\n";
/*在外部定义参数时,__set起作用。这里各个值都受了上面的影响。可以参考下面的例子。这里做一个比较。*/
$per->name="王五";
$per->sex="女";
$per->age="200";
$per->say();
echo "\n----------------\n";
$per1 = new ren();
$per1->name="王五";
$per1->sex="女";
$per1->age="200";
$per1->say();
?>