问一下,面向对象中??__get 和 __set 到底是干什么用的? 如果只是可以访问和设置类的属性的话,PHP 有必要专门搞两个这样的函数吗,随便写个函数就可以输出和设置CLASS 的属性了。所以不明白 __get 和 __set 的作用到底是什么?还有类里面所谓的静态是什么意思? 用static 关键字申请的 ,,,,,,::? ?和 : 有什么区别,到底在类里面有没有‘:’这么一个操作符、、、、、、、、、、、、、、、先谢谢各位高手指教了!、、、、、、
get和set不是类的属性,而是字段的属性,控制私有字段的可访问性,用于保护内部数据的安全,get用于获取字段的值(只读属性)意思是只能读取而不能对其赋值,set用于获取字段的值(只写属性)意思是只能赋值而不能读取。如果将get和set绑定在一起就是字段的封装,类里面有静态和非静态,static可以用于修饰方法、变量、类、字段、属性,用static修饰的方法称为静态方法,需使用类名调用,调用前需要初始化。比如你在Program类中定义一个变量,在这个类访问不到,就可以再变量类型前面加上static修饰就可以访问了,你用的多了就明白是什么意思了,具体可见msdn里面。还有就是 ‘:’表示继承(子类:父类(子类继承父类))
原帖由 于 2006-4-28 11:53 发表他们在效果上没有区别, 我觉得唯一的不同在于 __GET __SET这样设置/访问 类属性 更符合面向对象的思想仅此而已.面向对象要求我们尽量把所有属性都封装好,就好象一个人,手啊脚啊,都只有动作,而不能单独把手 ...
不知道你看过>没有\"只有一个访问入口,就可以实现对要保存的数据进行检查,这样就可以确保被保存的数据时有意义的数据\"\"通过单一的访问入口,可以方便地改变潜在的程序实现\"\"无论需要做什么样的改变,只要修改访问器函数即可\"