电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP 5.0 的變化與PHP 6.0 展望

瀏覽:2日期:2023-12-18 18:49:11

作者: 朱先忠編譯

目前,大多數(shù)PHP安裝還是使用PHP 4.x版本。實(shí)際上,PHP 5.0已經(jīng)出臺(tái)一段時(shí)間了,而如今PHP 5.1.1也剛剛發(fā)行。如果你還沒有升級(jí)到這些新版本,那么讓我們一同看一下在新版的PHP中的變化,并在最后討論對(duì)于PHP 6所期望的特性。

一、PHP 5.0中的變化

作為一個(gè)全新的版本號(hào),在PHP 4和PHP 5之間存在許多實(shí)質(zhì)性的區(qū)別。大多數(shù)的炒作主要圍繞被重新改寫過的新的對(duì)象模型。PHP 5版本更為完整并且運(yùn)行性能更為良好。在PHP 4中,對(duì)象其實(shí)僅是一個(gè)粗糙的數(shù)據(jù)類型,并且是值引用的。在試圖保持盡可能多的向后兼容性的同時(shí),在PHP 5中,設(shè)置zend.ze1_compatibility_mode可以允許與版本4中方法的兼容。當(dāng)然,PHP 5也存在一些向后不兼容的改變,具體包括:

·新的保留下來(lái)的關(guān)鍵字大多數(shù)與對(duì)象模型相關(guān)(exception,final, php_user_filter,interface,implements,extends,public,private,protected,abstract,clone,try,catch,throw)。在PHP 4中保留的兩個(gè)單詞不再存在(cfunction,old_function)。

·如果一個(gè)對(duì)象沒有任何屬性,那么它不再為空(empty)。

·現(xiàn)在array_merge()函數(shù)只接收數(shù)組。

·類可以在使用前聲明(依賴于具體情況)。

·get_class(),get_parent_class()和get_class_methods()現(xiàn)在能夠返回一個(gè)大小寫敏感的結(jié)果,而以前的返回結(jié)果都是小寫的。

·strrpos()和strripos()現(xiàn)在使用整個(gè)字符串。例如,var_dump(strrpos('ABCDEF','DAF'))將在PHP 4中返回int(3),而在PHP 5中返回bool(false)

·如果$_SERVER存在,它將用argc和argv進(jìn)行填充-這就允許CLI版本總是可以存取這些數(shù)據(jù)。

·當(dāng)傳遞一個(gè)無(wú)效的IP地址時(shí),ip2long()返回FALSE而不是-1。

·定義在一個(gè)包括文件中的函數(shù)現(xiàn)在能夠在任何時(shí)刻為主文件所調(diào)用。如果文件兩次被包括(這時(shí)函數(shù)已經(jīng)被定義了),PHP 5也將發(fā)出一個(gè)致命的錯(cuò)誤。

·require_once()和include_once函數(shù)現(xiàn)在考慮到了Windows大小的不敏感性,并且將每次僅包括一個(gè)文件-即使該函數(shù)以不同大小寫的文件名被調(diào)用多次。

·擺脫了原來(lái)PHP 4中的警告。新的PHP 5在遇到一個(gè)無(wú)效的字符串偏移量時(shí)將拋出一個(gè)錯(cuò)誤。 ·Tokenizer擴(kuò)展不再定義閑置的T_ML_COMMENT常量。

注意,這些看似較多的不兼容的變化其實(shí)并不大,而且如果你想把原有代碼移植到PHP 5中的話,有可能只對(duì)你的腳本作極少量的修改即可。PHP 5為做許多事情提供了更好的方法,但是如果你的目的僅是為了能使程序運(yùn)行,那么你不會(huì)遇到太多的麻煩。在PHP 5中的另外一些變化有:

·在命令行CLI和CGI腳本作了少許變化,有效地提高了新的CLI地位的重要性。

·引入大量的新函數(shù),其中許多是用于處理數(shù)組、字符轉(zhuǎn)換和流操作的。

·缺省情況下,MySQL客戶端庫(kù)沒有與PHP 5綁定到一起。而是,包括了SQLite擴(kuò)展-它基本上是一微型數(shù)據(jù)庫(kù)引擎,其目的是消除任何設(shè)置和管理的需要。

·新加了mysqli(MySQL增強(qiáng)擴(kuò)展)(缺省地沒有包括在內(nèi)),為的是充分地利用MySQL 4.1及以上版本的優(yōu)勢(shì)。

想更全面地了解從PHP 4到PHP 5的變化,你可以參考PHP網(wǎng)站上的官方檔案。

二、PHP 5.1.x中的變化

在本文成文時(shí),剛剛發(fā)行PHP 5.1.1(在廣為爭(zhēng)論的5.1.0出臺(tái)后不久)。該版本在PHP郵件列表中引起一陣小的騷亂。在5.1.0版本中,某些關(guān)鍵的變化被匆忙地包括進(jìn)一個(gè)隨后發(fā)行的候選版本中。一切似乎都靜悄悄的,直到最后的發(fā)行版才引起酣然大波。然而,這些變化在5.1.1中被還原以防止出現(xiàn)pear::date沖突。

·如今,閃電般登場(chǎng)的PDO成為PHP核心的一部分。要更多地了解與PHP相關(guān)的抽象層知識(shí),可以參考《Database Abstraction in PHP》或者PHP網(wǎng)站上的官方檔案。

·PDO MySQL驅(qū)動(dòng)程序現(xiàn)在成為存取MySQL的推薦方法-在缺省情況下,并不啟用老式的mysqli和mysql擴(kuò)展。

·PHP 5.1比5.0版本在性能上也大大改進(jìn)。

·如前所提及的,日期/時(shí)間支持在5.1.0版本中被重寫,而在5.1.1版中又被還原。也許以后不久還會(huì)有所變化-盡管都是經(jīng)過仔細(xì)計(jì)劃的。

·在PHP 5.0到PHP 5.0.4版本階段,是支持抽象的私有方法的。然而,現(xiàn)在它們都被取消了。

·現(xiàn)在,不允許重復(fù)聲明一個(gè)類常量。下面代碼在5.1中不會(huì)工作并將拋出一個(gè)E_ERROR錯(cuò)誤。

<?php class anything {const const_name = 'value';const const_name = 'value2'; }?>

·14個(gè)更舊的擴(kuò)展被從PHP核心刪除。這些包括 ext/cpdf,ext/dbx,ext/dio,ext/fam,ext/ingres_ii,ext/ircg,ext/mcve,ext/mnogosearch,ext/oracle,ext/ovrimos,ext/pfpro,ext/w32api,ext/yp,sapi/activescript。所有這些還可用于PECL中,盡管并不是所有這些擴(kuò)展都能得到積極維護(hù)。

·在參考引用的管理上也有所變化。以前我們可以以參考引用方式發(fā)送、賦值或返回變量-其實(shí)它們應(yīng)該以值的形式返回。這些包括常數(shù)、自身以值形式返回的函數(shù)或一個(gè)表達(dá)式的結(jié)果。這里有一個(gè)例子:

<?php$var1 = 'value';function return_val() { global $var_name; return $var_name;}$var2 = &return_val();?>

這段代碼過去是可以工作的(直到5.0.4版本),但是現(xiàn)在在5.1版本中會(huì)拋出一個(gè)E_STRICT異常。

也許5.1.x不久也會(huì)退場(chǎng),但是其中引入了許多有價(jià)值的改進(jìn)-PDO的引入可能是最值得稱道的。要詳細(xì)了解PHP文檔中的更改日志,可以看一下這里有關(guān)PHP 5.1(和早些版本)變化的詳盡列表。

三、PHP 6.0中要作的改變

PHP 6.0估計(jì)會(huì)是一個(gè)相當(dāng)激動(dòng)人心的發(fā)行。然而,什么東西都是一分為二的。不過,看起來(lái)最令我氣惱的三個(gè)家伙(register_globals,magic_quotes_gpc和safe_mode)可能要退位了。第一個(gè)存在一個(gè)很大的安全漏洞;第二個(gè)由于操作大量數(shù)據(jù)所以在改變環(huán)境時(shí)簡(jiǎn)直就是一場(chǎng)夢(mèng)魘;而第三個(gè)是一個(gè)無(wú)人能理解的錯(cuò)誤的名稱并且會(huì)給人帶來(lái)一種安全方面的錯(cuò)覺。在Unicode問題上,還有大量的工作要做。下面是預(yù)計(jì)的一些新變化:

·register_globals,safe_mode和各種魔術(shù)引用選項(xiàng)將被刪除。  ·ereg擴(kuò)展將被刪除,而XMLReader,XMLWriter和Fileinfo擴(kuò)展將被添加到內(nèi)核上并且在缺省情況下為on狀態(tài)。  ·我發(fā)現(xiàn)的另外一處令人激動(dòng)的新變化是,APC(Alternative PHP Cache)將被添加到內(nèi)核上,盡管在缺省情況下為off狀態(tài)。APC可以為開發(fā)者提供嚴(yán)謹(jǐn)?shù)男阅芤嫣帯?/P>

·所有的E_STRICT消息將被合并進(jìn)E_ALL-這又是針對(duì)良好編程實(shí)踐所作出的一個(gè)積極更改。

·不再支持ASP風(fēng)格的標(biāo)簽<%。

·引入了新的64位整型數(shù)。當(dāng)前的整數(shù)類型被保留下來(lái)-至于是32還是64位將依賴平臺(tái)而定。

·可以結(jié)合多維數(shù)組使用foreach,例如foreach($array as $k => list($a, $b))。

·在php.ini新引入的一個(gè)開關(guān)將允許你禁止Unicode語(yǔ)義(缺省地,它們被置為on狀態(tài))。

·還有各種針對(duì)Unicode的字符串操作上的改進(jìn)。  ·microtime()函數(shù)將返回完整的浮點(diǎn)數(shù),而不是象目前的微秒值unix_timestamp。這樣更可能有利于大多數(shù)人的使用。

·不再支持用于字符串索引的{}注釋,而[]版本將被添加到substr()和array_slice()功能中。以前的[]為許多人所批評(píng),但是大多數(shù)的開發(fā)者,包括我在內(nèi),都一直使用[]。

·在針對(duì)CGI SAPI情形時(shí),將一直啟用FastCGI,并且不會(huì)被禁止。

·不再支持古老的HTTP_*_VARS全局變量。

·var將有一個(gè)新的別名public。在PHP4 類中Var是被允許的,但是在PHP 5中,這將會(huì)引發(fā)一個(gè)警告。在PHP 6中,var將僅是public的一個(gè)別名,因此將不會(huì)再出現(xiàn)警告。

·ze1兼容性模式將被刪除-這一方式原來(lái)試圖保留PHP 4的行為但是卻存在一些錯(cuò)誤。

·不再允許用靜態(tài)語(yǔ)法來(lái)調(diào)用動(dòng)態(tài)函數(shù)。

另外,還存在許多要決定的問題,例如命名空間可能更為重要,但是目前基本上還沒有得到同意。你可以讀一下最近的PHP開發(fā)者會(huì)議上對(duì)于PHP 6的詳細(xì)討論。盡管PHP 6尚未出臺(tái),但是我相信在其最終發(fā)行之前一定存在不少周折。盡管如此,PHP所做出的貢獻(xiàn)已得到業(yè)界的充分認(rèn)可,其前途是一片光明的。

標(biāo)簽: PHP
主站蜘蛛池模板: 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | SMN-1/SMN-A ABB抽屉开关柜触头夹紧力检测仪-SMN-B/SMN-C-上海徐吉 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 楼承板-开口楼承板-闭口楼承板-无锡海逵 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 深圳市东信高科自动化设备有限公司 | 专业音响设备_舞台音响设备_会议音响工程-首选深圳一禾科技 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 步入式高低温测试箱|海向仪器 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 船用烟火信号弹-CCS防汛救生圈-船用救生抛绳器(海威救生设备) | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 空压机网_《压缩机》杂志 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 宝鸡市人民医院 | 兰州UPS电源,兰州山特UPS-兰州万胜商贸 | 爱科技iMobile-专业的科技资讯信息分享网站 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 防爆电机-高压防爆电机-ybx4电动机厂家-河南省南洋防爆电机有限公司 |