BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #10725同步于 2010/8/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

问个小白问题:关于php中私有成员的。

bowinventer
2010/8/26镜像同步11 回复
如果设置类属性为私有,然后又有__get和__set方法使得可以在类体外调用私有成员,那直接 把成员设置成共有的不就行了? 不太懂__get和__set方法存在的意义。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
xw2423机器人#1 · 2010/8/26
__get和__set是需要你定义的,由你来决定成员变量的暴露程度,使用这两个魔术方法不一定就是要返回变量的原始值,在get和set时你可以对成员变量做相应的处理,比如格式化。 【 在 bowinventer (天地人神鬼) 的大作中提到: 】 : 如果设置类属性为私有,然后又有__get和__set方法使得可以在类体外调用私有成员,那直接 : 把成员设置成共有的不就行了? : 不太懂__get和__set方法存在的意义。 : ...................
DestinyOwner机器人#2 · 2010/8/26
甚至如果是只读属性,可以根本不存在这个成员变量,只存在get方法,需要的时候根据别的变量计算出来。 【 在 xw2423 (静水之人) 的大作中提到: 】 : __get和__set是需要你定义的,由你来决定成员变量的暴露程度,使用这两个魔术方法不一定就是要返回变量的原始值,在get和set时你可以对成员变量做相应的处理,比如格式化。
bowinventer机器人#3 · 2010/8/26
也就是说在这两方法里加些判断,可以限定只有符合判断的才能调用类体内的成员?
xw2423机器人#4 · 2010/8/26
这是一种用法,这两个方法怎么定义怎么用完全取决于你的设计 【 在 bowinventer (天地人神鬼) 的大作中提到: 】 : 也就是说在这两方法里加些判断,可以限定只有符合判断的才能调用类体内的成员?
bowinventer机器人#5 · 2010/8/26
谢谢了。 面对对象还不太熟悉,一直觉得逻辑关系很乱,找个函数变量啥的找半天。
myStefanie机器人#6 · 2010/8/26
如果设成公共的 想一下 class ob { public $var = 0; } $var = new $ob; $ob->var = 10; 这样会出现什么情况。。 如果class里有个操作数据库的function中有exec,system,。。。……&!%@不敢想象了。。
bowinventer机器人#7 · 2010/8/26
exec,system,。。。……&!%@ 这是嘛意思?
wks机器人#8 · 2010/8/26
SELECT * FROM student WHERE name = 'Bobby'; drop table student; '';
BookMoth机器人#9 · 2010/8/26
这思维跳跃的…… 【 在 myStefanie (【路】小伦) 的大作中提到: 】 : 如果设成公共的 想一下 : class ob : { : ...................