PHP类__get()函数疑问
答案:2 悬赏:0 手机版
解决时间 2021-03-23 16:11
- 提问者网友:做自己de王妃
- 2021-03-23 10:47
PHP类__get()函数疑问
最佳答案
- 五星知识达人网友:鱼芗
- 2021-03-23 11:28
__get()
是php的一个魔术方法, 用于获取类对象中的私有变量
这个魔术方法,有一个参数是必须的, 也就是你说的那个$name
这里不能说$name和$attribute有没有关系,不是你这样理解的!
所谓变量,他的具体的值,是未知的,不是固定的,具体是什么值,在于你在调用的时候,提供的是什么值
比如:
class classname {
private $attribute;
private function __get( $name ) {
return $this -> $name;
}
}
//那么我们调用一下这个类:
$Class = new classname;//实例化类
echo $Class -> attribute; //这里调用的时候,是访问的类的attribute私有变量, 那么,这个时候,你所说的$name和$attribute就有关系了, $name的值就是attribute
echo $Class -> abcd; //这个时候, $name和$attribute就没有关系了,因为$name的值,这个时候是abcd; 这样你应该能理解吧?
有一点要注意的就是:如果一个类中,你打算使用 __get() 、 __set()这2个魔术方法的话, 那么,你的类成员变量应该设置为私有( private ), 而不是公共( public )
否则, 你的这2个魔术方法,有点画蛇添足。。。。
是php的一个魔术方法, 用于获取类对象中的私有变量
这个魔术方法,有一个参数是必须的, 也就是你说的那个$name
这里不能说$name和$attribute有没有关系,不是你这样理解的!
所谓变量,他的具体的值,是未知的,不是固定的,具体是什么值,在于你在调用的时候,提供的是什么值
比如:
class classname {
private $attribute;
private function __get( $name ) {
return $this -> $name;
}
}
//那么我们调用一下这个类:
$Class = new classname;//实例化类
echo $Class -> attribute; //这里调用的时候,是访问的类的attribute私有变量, 那么,这个时候,你所说的$name和$attribute就有关系了, $name的值就是attribute
echo $Class -> abcd; //这个时候, $name和$attribute就没有关系了,因为$name的值,这个时候是abcd; 这样你应该能理解吧?
有一点要注意的就是:如果一个类中,你打算使用 __get() 、 __set()这2个魔术方法的话, 那么,你的类成员变量应该设置为私有( private ), 而不是公共( public )
否则, 你的这2个魔术方法,有点画蛇添足。。。。
全部回答
- 1楼网友:舍身薄凉客
- 2021-03-23 12:49
__get方法不是需要传递一个参数么
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯