PHP类中的__set()和__get()方法用在什么地方?可以用例子说明一下么...

 我来答
lxcaijing1314
2010-11-11 · 超过35用户采纳过TA的回答
知道答主
回答量:246
采纳率:0%
帮助的人:96.7万
展开全部
在PHP类中的__set()和__get()方法是针对protect或private变量的,不针对public变量。因为对protect或 private变量在类外不可直接访问,可在类中定义一个public方法来访问这些变量,而__set()和__get()方法相当于这些public 方法,但是在类外的操作时表面上相当于直接访问,但本质上还是通过__set()和__get()方法体内的判断与操作。对于一个类中有多个 protect或private变量,用一对__set()和__get()方法就可操作,编译器将可自己区别用的是哪个变量(由在类外操作时具体的变量名决定,如$object->$name="sss").

如下:

<?php

class test
{
var $name;
var $age;

function __set($name,$value)
{
$this->$name = $value ;
}

function __get($name)
{
return $this->$name;
}

}

$a = new test();
$a -> name = 5;
echo $a->name . "<br/>" ;

$a -> age = "12";
echo $a->age;
?>

输出结果是,5 和 12。

//php类中静态变量可用一般方法或静态方法来操作,但如果在类中用静态方法,则静态方法中不可有非静态的变量。
icycommond
2010-11-11 · 超过17用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:29.9万
展开全部
楼上正解
好详细 - -
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式