一些杂谈
首先是本文写作的初衷。我拿到关于Zend Engine 2.0的设计蓝图文档已经有一段时间了,看完之后就有了写一篇评论的冲动--因为根据文档的描述下一代的PHP将是一种更符合现有面向对象开发习惯的语言,至少是被更多的赋予了面向对象特性。但是随之带来的问题就是对于PHP这样一个以Web快速开发为初始目标的语言是否值得将自己修饰得面面俱到?这个问题看来是需要一些评论文章来讨论的,我也很愿意提出自己的观点。但是后来一些繁忙的事情就将这个冲动一点点又打回了肚里,直到最近一段时间又想起,于是再拜读几遍设计蓝图文档,遂有此文。(刚拿到这份英文文档的时候我还有将这份设计蓝图文档翻译到中文的打算,但是考虑到一是并非最终蓝图,二是大家都应该培养直接阅读原文的习惯,三是翻译总是不可避免会带来一些晦涩的地方,于是暂时作罢。不过写成此文的时候,还是决定"冒险"翻译一次,不能准确达意之处还请各位不吝指正。)
其次是对本文讨论焦点的解释--在这篇评论中我将主要针对将来的PHP中得以大大加强的面向对象特性进行评述。如果你是PHP的开发者,那么我猜想你应该了解一些PHP语言中的面向对象特性;但是由于一般PHP用于"极端快速开发环境"(这是我自己生造出的一个词语,表示进行一些以客户为导向的网站开发的情况,特点就是工期非常短且客户要求不甚明确),所以真正大量使用其对象特性的开发者以及开发项目并不是很多;另外,现有PHP对象模型相对C++和Java的弱势,也限制了这方面特性的使用。不过在PHP的将来版本中,修改重点就在于语言中的面向对象模型,完善现有版本中许多不良的特性并加入其他特性。因此讨论PHP的未来面貌就集中在讨论PHP的面向对象特性方面。
好了,让我们步入正题,看看Zend Engine 2.0的新特性。
归纳Zend Engine 2.0设计蓝图(草稿)
从设计蓝图(草稿)中可以非常清楚的看出下一代Zend Engine是以新的面向对象模型为基础的。如果你曾经使用过现有PHP 4的面向对象特性,那么也许会在找到一点点Java或者C++的感觉的同时觉得有些别扭--不但是在面向对象语法的匮乏上,而且有时会得到意想不到的运行结果--这一切都是因为在现有的支持PHP 4的Zend Engine 1.0中不那么优雅的面向对象模型造成的。
简单说来,下一代的Zend Engine将向Java靠拢,大量借鉴其面向对象模式。从改进特性的类型来看,应该可以分为三类:第一类是对现有面向对象模型的改进和加强,其中包括对构建器和析构器的定义,增加的私有成员变量、静态成员变量、多重继承、过载等面向对象特性;第二类是对于控制流程的修改和增删,比如增加了形如try/catch/throw违例处理机制;第三类是关于函数的修改和增删,比如对于字符串偏移量的增加函数。(对于每一类改进的详细情况,可以查阅参考资料中所列文档。)由此可以看出,通过第一类和第二类的改进,PHP正在逐步将自己改良成一种具有面向对象特征的语言。
不过问题恰恰就产生于此:
从积极的方面来说,如今的编程世界中更加欢迎具有面向对象特征的语言(即使语言本身并不构建于面向对象基础之上,也可以通过增加定义的对象等手段使得该语言不至于落在潮流之后)--从这一意义上说,Zend Engine 2.0使得PHP对面向对象的支持将从现在的试探性接触转变为将来的全面拥护,看来更加符合编程语言发展的潮流;另外,在构建企业级应用(这也是PHP现在经常被人指责之处)之时,采用面向对象的方法建模和实现已经是事实上的标准,而PHP的这一改进也许会迎合这一需要,解决语言自身在这方面的薄弱之处。
从消极的方面来说,为开发者奉献一个更加类似Java的新版PHP似乎没有什么意义。PHP被广泛应用的原因,除了源码公开和跨平台等之外,适应互联网站构建的简单、快速的web编程特点恐怕也是重要的一点。极短的学习时间、友好的语言风格(特别是如果你对C比较熟悉)和大量扩充类库函数,足以证明其强大;但是如果将这样的语言的下一版本改造成类似面向对象的语言,不但会使原有的大量开发者在短时间内无所适从,而且非常不利于吸引新的开发者加入--既然有Java这样的语言,何必去学习PHP呢?
以上是我本人的一些"客观"分析--所谓"客观",就是在写积极方面的时候,将自己伪装成一个Zend Engine 2.0的忠实拥护者;而在写消极方面的时候,则正相反(希望你在读完我的分析之后也可以觉得还算客观)。不过"客观"其实也只是为我的"主观"论调起到铺垫作用--
我们期望将来的PHP会是什么样子?
其实问题的关键也许在于我们期望的PHP到底会向哪一个方向发展,或者说PHP会致力于哪一个领域。
PHP之所以受到如此大的欢迎,尤其是在几乎没有任何商业支持(Zend公司现在对PHP提供支持,但是其实力和Microsoft以及Sun比较起来实在是微不足道的。)的情况下成为能够与ASP以及JSP抗衡的编程语言,是因为它完全面向现实的快速web编程环境。这一情况在许多的PHP教程中可以清楚的看出--实现一些常用的web功能,采用PHP往往意味着更少的代码量和复杂程度;同时对于某一特定领域的编程,PHP还有扩展模块的函数可供使用(虽然没有商业支持,但是PHP拥有开源软件众多的拥护者支持,他们不但为PHP的产生和发展作出贡献,并且提供了各种扩展模块函数。),这样对于开发者而言,更多的立即可用的并且免费的函数库意味着更少的工作量,所需要做的仅仅是查阅函数手册并妥善使用它们。而PHP的竞争对手们,则显得有些"学究"-- 灵活不足而严谨有余,也许大型商业公司的产物在使用的方便程度上确实不及黑客们的得意之作吧。
不过为了适应现实的快速web编程环境,PHP在注重方便易用的时候放弃了一些东西:比如开发者的自有模块的编写和封装(非源码级别),以及面向对象特性(现有版本只是不完全的支持一部分特征)等等--而这些PHP的缺少的却是它的竞争对手们所拥有的(比如ASP可以和COM组件沟通,JSP则可以方便的使用Java Bean;JSP脱胎于Java这一完全面向对象的语言等等),因此PHP通常被排除在构建企业级应用的候选名单之外。
问题的核心已经比较清晰了--现在的PHP发展遇到了一个叉路口:是继续将自己的快速web编程语言的特点发挥得淋漓尽致,还是将自己完善、修饰成一个适应严肃商业环境需求的编程语言? 1

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

1.处理器在选择电脑配置时,处理器是至关重要的组件之一。对于玩CS这样的游戏来说,处理器的性能直接影响游戏的流畅度和反应速度。推荐选择IntelCorei5或i7系列的处理器,因为它们具有强大的多核处理能力和高频率,可以轻松应对CS的高要求。2.显卡显卡是游戏性能的重要因素之一。对于射击游戏如CS而言,显卡的性能直接影响游戏画面的清晰度和流畅度。建议选择NVIDIAGeForceGTX系列或AMDRadeonRX系列的显卡,它们具备出色的图形处理能力和高帧率输出,能够提供更好的游戏体验3.内存电

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

广联达软件是一家专注于建筑信息化领域的软件公司,其产品被广泛应用于建筑设计、施工、运营等各个环节。由于广联达软件功能复杂、数据量大,对电脑的配置要求较高。本文将从多个方面详细阐述广联达软件的电脑配置推荐,以帮助读者选择适合的电脑配置处理器广联达软件在进行建筑设计、模拟等操作时,需要进行大量的数据计算和处理,因此对处理器的要求较高。推荐选择多核心、高主频的处理器,如英特尔i7系列或AMDRyzen系列。这些处理器具有较强的计算能力和多线程处理能力,能够更好地满足广联达软件的需求。内存内存是影响计算

随着互联网技术的发展,RESTful风格的API设计成为了最为流行的一种设计方式。而Java作为一种主要的编程语言,也越来越多地在RESTful接口的开发中扮演着重要的角色。在JavaAPI开发中,如何设计出优秀的RESTful接口,成为了一个需要我们深入思考的问题。RESTful接口的基本原则首先,我们需要了解RESTful接口的基本原则。REST即Re

随着互联网技术的不断发展,面向服务架构(SOA)的理念越来越受到人们的重视。在这个背景下,Go语言作为一种高效、可靠的编程语言,也逐渐成为了很多企业与开发者实现SOA的首选语言。本文将深入探讨Go语言中的面向服务架构设计。一、SOA简介面向服务架构是一种软件设计的架构风格,它将复杂的系统拆分成多个相互独立、可复用的服务,每个服务都有独立的功能实现,并使用标准

我准备去西藏旅行背包去①背多少升的包合适把你认为最好的配置说下本人170体力不错第一次去徒步多就60升或以上的徒步少就60升以下的全程都坐车就不用背包,旅行箱更方便,真要随身带东西,弄个25~40升的就绰绰有馀西藏旅游必备用品:太阳镜、太阳帽、防晒霜、护肤霜、润唇膏、长袖上衣、毛衣;对于特殊旅游或去阿里、藏北、川藏线旅游,建议带:睡袋(防寒)、床单(防脏)、羽绒服、旅游鞋或登山鞋、拖鞋、牙刷、牙膏、毛巾、卷筒纸、纸内裤、消毒湿巾、手电筒、防水火柴、刀具、绳子。前运包能装电脑吗能装电脑,有些背包有

如何在Zend框架中使用ACL(AccessControlList)进行权限控制导言:在一个Web应用程序中,权限控制是至关重要的一项功能。它可以确保用户只能访问其有权访问的页面和功能,并防止未经授权的访问。Zend框架提供了一种方便的方法来实现权限控制,即使用ACL(AccessControlList)组件。本文将介绍如何在Zend框架中使用ACL


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。