<?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();

?>