“zhangsan”传给
$value
,通过这个方法的执行,达到赋值的目的。如果成员属性不封装成
私有的,对象本身就不会去自动调用这个方法。为了不传入非法的值,还可以在这个方法
给做一下判断。代码如下:
代码如下:
<?php
class
Person
{
//
下面是人的成员属性,都是封装的私有成员
private
$name
;
//
人的名子
private
$sex
;
//
人的性别
private
$age
;
//
人的年龄
//__get()
方法用来获取私有属性
private
function
__get(
$property_name
)
{
echo
"在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";
if
(isset(
$this
->
$property_name
))
{
return
(
$this
->
$property_name
);
}
else
{
return
(NULL);
}
}
//__set()
方法用来设置私有属性
private
function
__set(
$property_name
,
$value
)
{
echo
"在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>";
$this
->
$property_name
=
$value
;
}
}
$p1
=newPerson();
//直接为私有属性赋值的操作,会自动调用__set()
方法进行赋值
$p1
->name="张三";
$p1
->sex="男";
$p1
->age=20;
//直接获取私有属性的值,会自动调用__get()
方法,返回成员属性的值
echo
"姓名:".
$p1
->name."<br>";
echo
"性别:".
$p1
->sex."<br>";
echo
"年龄:".
$p1
->age."<br>";
?>