引言: 第八节--访问方式PHP5的访问方式允许限制对类成员的访问. 这
摘要:第十一节--重载php4中已经有了重载的语法来建立对于外部对象模型的映射,就像java和com那样. php5带来了强大的面向对象重载,允许程序员建立自定义的行为来访问属性和调用方法.重载可以通过__get, __set, and __call几个特殊方法来进行. 当zend引擎试图访问一个成员并没有找到时,php将会调用这些方法.在例6.14中,__get和__set代替所有对属性变量数组的访问. 如果必要,你可以实现任何类型你想要的过滤. 例如,脚本可......
摘要:第十三节--对象串行化串行化可以把变量包括对象,转化成连续bytes数据. 你可以将串行化后的变量存在一个文件里或在网络上传输. 然后再反串行化还原为原来的数据. 你在反串行化类的对象之前定义的类,php可以成功地存储其对象的属性和方法. 有时你可能需要一个对象在反串行化后立即执行. 为了这样的目的,php会自动寻找__sleep和__wakeup方法.当一个对象被串行化,php会调用__sleep方法(如果存在的话). 在反串行化一个对象后,php 会调......
PHP5的对象模型[8]--访问限制第八节--访问方式 【相关文章:
通用存储过程函数】 【扩展阅读:
判断密码是不是简单文本的函数】php5的访问方式允许限制对类成员的访问. 这是在php5中新增的功能,但在许多面向对象语言中都早已存在. 有了访问方式,才能开发一个可靠的面向对象应用程序,并且构建可重用的面向对象类库. 【扩展信息:
C# Code Review Check】 像c++与java一样,php有三种访问方式:public,private与protected. 对于一个类成员的访问方式,可以是其中之一. 如果你没有指明访问方式,默认地访问方式为public. 你也可以为静态成员指明一种访问方式,将访问方式放在static关键字之前(如public static). public成员可以被毫无限制地访问.类外部的任何代码都可以读写public属性. 你可以从脚本的任何地方调用一个public方法. 在php的前几个版本中,所有方法与属性都是public, 这让人觉得对象就像是结构精巧的数组. private(私有)成员只在类的内部可见. 你不能在一个private属性所在的类方法之外改变或读取它的值. 同样地,只有在同一个类中的方法可以调用一个private方法. 继承的子类也不能访问父类中的private 成员. 要注意,类中的任何成员与类的实例都可以访问private成员. 看例子6.8,equals方法将两个widget进行比较.==运算符比较同一个类的两个对象,但这个例子中每个对象实例都有唯一的id.equals方法只比较name与price. 注意equals方法如何访问另一个widget实例的private属性. java与c都允许这样的操作. listing 6.8 private members
name = $name; $this->price = floatval($price); $this->id = uniqid(); } //checks if two widgets are the same 检查两个widget是否相同 public function equals($widget) { return(($this->name == $widget->name)and ($this->price == $widget->price)); } } $w1 = new widget(´cog´, 5.00); $w2 = new widget(´cog´, 5.00); $w3 = new widget(´gear´, 7.00); //true if($w1->equals($w2)) { print("w1 and w2 are the same n"); } ...
下一页 摘要:4) ★ class type hints 类型指示
大家都知道,php是一种弱类型的语言。在使用变量前不需要定义,不需要声明变量的数据类型。这在编程中带来很多便利,但也带了一些隐患,特别当变量的类型变化时。在php5增加了类型指示,可以在执行过程中自动对类方法的参数类型进行判断。这类似于java2中的rtti,配合reflection可以让我们很好地控制对象。
<?php interface foo { function a......