专注于WEB技术的IT博客

1003月

分类:设计模式

浏览1900

面向对象博大精深,对于从未接触过得的人,会觉得一头雾水。 学习的资料很多,但大多比较抽象,所以我用经典的游戏-星际争霸来讨论PHP面向对象。 现在假设我们来用PHP开发星际争霸,从而接触PHP面向对象。 注意,为了便于学习,除了特殊说明,否则各部分代码之间没有关联。

0903月

分类:设计模式

浏览1956

这是一部学习php设计模式的专集,作者以经典的游戏-星际争霸洋洋洒洒地讨论PHP面向对象和php的设计模式,内容比较全面,网志博客觉得它称得上一部学习php设计模式的经典之作,本来网志博客还打算以网页游戏武林三国来写一个php设计模式专辑的,但看到星际争霸的php设计模式后

1706月

分类:php

浏览3757

在php设计面向对象的程序开发时,通常为每个类的定义都单独建立一个PHP源文件。当你尝试使用一个未定义的类时,PHP会报告一个致命错误。 在PHP5之前,很多设计者对每个类的定义建立一个 PHP 源文件,然后在每个脚本开头写一个长长的包含文件列表(每个类一个文件),这意味着如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含100个类文件,或者把

0406月

分类:php

浏览4270

在程序的运行中,出现如上抛出的的错误是致命性的,整个程序将崩溃。为了处理这种错误的同时让程序继续执行,我们可以在类中添加一个魔术方法__call,来调用对象中不存在的方法时自动调用该方法,并且使程序可以继续向下执行。

1605月

分类:php

浏览24229

__toString()是快速获取对象的字符串信息的便捷方式,似乎魔术方法都有一个“自动“的特性,如自动获取,自动打印等,__toString()也不例外,它是在直接输出对象引用时自动调用的方法。当我们调试程序时,需要知道是否得出正确的数据。比如打印一个对象时,看看这个对象都有哪些属性,其值是什么,如果类定义了toString方法,就能在测试时,echo打印对象体,对象就会自动调用它所属类定义的t

0805月

分类:php

浏览7241

我们知道,在PHP中定义常量是通过define()函数来完成的,但在类中定义常量不能使用define(),而需要使用const修饰符。类中的常量使用const定义后,其访问方式和静态成员类似,都是通过类名或在成员方法中使用self访问,但在PHP 5.3.0之后也可以使用对象来访问。被const定义的常量不能重新赋值,如果在程序中试图改变它的值将会出现错误。

2404月

分类:php

浏览3540

final从英文字面上很容易理解,翻译成中文就是“最终的”之意。在php面向对象编程中,final的应用主要有两个作用: 1、使用final修饰的类,该不能被继承 2、在类中被final修饰的成员方法,在子类中不能被覆盖

2204月

分类:php

浏览5803

在前面的PHP面向对象之对象和引用,我们试图以"$b=$a"的方式复制对象以传递对象的值(内容),结果却是传递对象的地址,在结尾为了解决复制对象这个问题,提到了克隆的方法。接下来讲一下php面向对象之克隆对象。 从前面我们已经知道,使用传址引用的方式调用对象,实质调用的是同一个对象,有时需要建设立一个对象的副本,改变原来的对象时不希望影响到副本,在PHP中可以根据现在的对象来克隆出一个完全一样的

1804月

分类:php

浏览3889

在PHP中对象类型和简单变量类型表现可以说是大相径庭,很多数据类型都要可以在写时进行复制,如当写代码$a=$b时,两个变量因为赋予相同的值而告终。所以需要注意的是,这种情况用在对象时就会完全不同了。我们来看看下面的代码,你期望输出什么值呢?

1504月

分类:php

浏览4246

php面向对象中类的静态成员包括静态方法和静态属性. 静态属性包含在类中要封装的数据,可以由所有类的实例共享. 实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量。 静态方法则实现类需要封装的功能,与特定的对象无关. 静态方法非常类似于全局函数. 静态方法可以完全访问类的属性,也可以由对象的实例来访问,不论访问的限定语是什么。 类的静态成员与一般的类成