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

您的位置:首頁技術文章
文章詳情頁

回顧與展望PHP 5.0的變化與PHP 6.0展望

瀏覽:2日期:2023-12-19 09:03:04

目前,大多數PHP安裝還是使用PHP 4.x版本。實際上,PHP 5.0已經出臺一段時間了,而如今PHP 5.1.1也剛剛發行。如果你還沒有升級到這些新版本,那么讓我們一同看一下在新版的PHP中的變化,并在最后討論對于PHP 6所期望的特性。一、PHP 5.0中的變化作為一個全新的版本號,在PHP 4和PHP 5之間存在許多實質性的區別。大多數的炒作主要圍繞被重新改寫過的新的對象模型。PHP 5版本更為完整并且運行性能更為良好。在PHP 4中,對象其實僅是一個粗糙的數據類型,并且是值引用的。在試圖保持盡可能多的向后兼容性的同時,在PHP 5中,設置zend.ze1_compatibility_mode可以允許與版本4中方法的兼容。當然,PHP 5也存在一些向后不兼容的改變,具體包括:·新的保留下來的關鍵字大多數與對象模型相關(exception,final, php_user_filter,interface,implements,extends,public,private,protected,abstract,clone,try,catch,throw)。在PHP 4中保留的兩個單詞不再存在(cfunction,old_function)。·如果一個對象沒有任何屬性,那么它不再為空(empty)。·現在array_merge()函數只接收數組。·類可以在使用前聲明(依賴于具體情況)。·get_class(),get_parent_class()和get_class_methods()現在能夠返回一個大小寫敏感的結果,而以前的返回結果都是小寫的。·strrpos()和strripos()現在使用整個字符串。例如,var_dump(strrpos('ABCDEF','DAF'))將在PHP 4中返回int(3),而在PHP 5中返回bool(false)·如果$_SERVER存在,它將用argc和argv進行填充-這就允許CLI版本總是可以存取這些數據。·當傳遞一個無效的IP地址時,ip2long()返回FALSE而不是-1。·定義在一個包括文件中的函數現在能夠在任何時刻為主文件所調用。如果文件兩次被包括(這時函數已經被定義了),PHP 5也將發出一個致命的錯誤。·require_once()和include_once函數現在考慮到了Windows大小的不敏感性,并且將每次僅包括一個文件-即使該函數以不同大小寫的文件名被調用多次。·擺脫了原來PHP 4中的警告。新的PHP 5在遇到一個無效的字符串偏移量時將拋出一個錯誤。

·Tokenizer擴展不再定義閑置的T_ML_COMMENT常量。注意,這些看似較多的不兼容的變化其實并不大,而且如果你想把原有代碼移植到PHP 5中的話,有可能只對你的腳本作極少量的修改即可。PHP 5為做許多事情提供了更好的方法,但是如果你的目的僅是為了能使程序運行,那么你不會遇到太多的麻煩。在PHP 5中的另外一些變化有:·在命令行CLI和CGI腳本作了少許變化,有效地提高了新的CLI地位的重要性。·引入大量的新函數,其中許多是用于處理數組、字符轉換和流操作的。·缺省情況下,MySQL客戶端庫沒有與PHP 5綁定到一起。而是,包括了SQLite擴展-它基本上是一微型數據庫引擎,其目的是消除任何設置和管理的需要。·新加了mysqli(MySQL增強擴展)(缺省地沒有包括在內),為的是充分地利用MySQL 4.1及以上版本的優勢。想更全面地了解從PHP 4到PHP 5的變化,你可以參考PHP網站上的官方檔案。

二、PHP 5.1.x中的變化在本文成文時,剛剛發行PHP 5.1.1(在廣為爭論的5.1.0出臺后不久)。該版本在PHP郵件列表中引起一陣小的騷亂。在5.1.0版本中,某些關鍵的變化被匆忙地包括進一個隨后發行的候選版本中。一切似乎都靜悄悄的,直到最后的發行版才引起酣然大波。然而,這些變化在5.1.1中被還原以防止出現pear::date沖突。·如今,閃電般登場的PDO成為PHP核心的一部分。要更多地了解與PHP相關的抽象層知識,可以參考《Database Abstraction in PHP》或者PHP網站上的官方檔案。·PDO MySQL驅動程序現在成為存取MySQL的推薦方法-在缺省情況下,并不啟用老式的mysqli和mysql擴展。·PHP 5.1比5.0版本在性能上也大大改進。·如前所提及的,日期/時間支持在5.1.0版本中被重寫,而在5.1.1版中又被還原。也許以后不久還會有所變化-盡管都是經過仔細計劃的。·在PHP 5.0到PHP 5.0.4版本階段,是支持抽象的私有方法的。然而,現在它們都被取消了。·現在,不允許重復聲明一個類常量。下面代碼在5.1中不會工作并將拋出一個E_ERROR錯誤。

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

·14個更舊的擴展被從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中,盡管并不是所有這些擴展都能得到積極維護。·在參考引用的管理上也有所變化。以前我們可以以參考引用方式發送、賦值或返回變量-其實它們應該以值的形式返回。這些包括常數、自身以值形式返回的函數或一個表達式的結果。這里有一個例子:

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

這段代碼過去是可以工作的(直到5.0.4版本),但是現在在5.1版本中會拋出一個E_STRICT異常。也許5.1.x不久也會退場,但是其中引入了許多有價值的改進-PDO的引入可能是最值得稱道的。要詳細了解PHP文檔中的更改日志,可以看一下這里有關PHP 5.1(和早些版本)變化的詳盡列表。

三、PHP 6.0中要作的改變PHP 6.0估計會是一個相當激動人心的發行。然而,什么東西都是一分為二的。不過,看起來最令我氣惱的三個家伙(register_globals,magic_quotes_gpc和safe_mode)可能要退位了。第一個存在一個很大的安全漏洞;第二個由于操作大量數據所以在改變環境時簡直就是一場夢魘;而第三個是一個無人能理解的錯誤的名稱并且會給人帶來一種安全方面的錯覺。在Unicode問題上,還有大量的工作要做。下面是預計的一些新變化: ·register_globals,safe_mode和各種魔術引用選項將被刪除。

·ereg擴展將被刪除,而XMLReader,XMLWriter和Fileinfo擴展將被添加到內核上并且在缺省情況下為on狀態。  我發現的另外一處令人激動的新變化是,APC(Alternative PHP Cache)將被添加到內核上,盡管在缺省情況下為off狀態。APC可以為開發者提供嚴謹的性能益處。·所有的E_STRICT消息將被合并進E_ALL-這又是針對良好編程實踐所作出的一個積極更改。·不再支持ASP風格的標簽<%。·引入了新的64位整型數。當前的整數類型被保留下來-至于是32還是64位將依賴平臺而定。·可以結合多維數組使用foreach,例如foreach($array as $k => list($a, $b))。·在php.ini新引入的一個開關將允許你禁止Unicode語義(缺省地,它們被置為on狀態)。·還有各種針對Unicode的字符串操作上的改進。

·microtime()函數將返回完整的浮點數,而不是象目前的微秒值unix_timestamp。這樣更可能有利于大多數人的使用。·不再支持用于字符串索引的{}注釋,而[]版本將被添加到substr()和array_slice()功能中。以前的[]為許多人所批評,但是大多數的開發者,包括我在內,都一直使用[]。·在針對CGI SAPI情形時,將一直啟用FastCGI,并且不會被禁止。·不再支持古老的HTTP_*_VARS全局變量。·var將有一個新的別名public。在PHP4 類中Var是被允許的,但是在PHP 5中,這將會引發一個警告。在PHP 6中,var將僅是public的一個別名,因此將不會再出現警告。·ze1兼容性模式將被刪除-這一方式原來試圖保留PHP 4的行為但是卻存在一些錯誤。·不再允許用靜態語法來調用動態函數。另外,還存在許多要決定的問題,例如命名空間可能更為重要,但是目前基本上還沒有得到同意。你可以讀一下最近的PHP開發者會議上對于PHP 6的詳細討論。盡管PHP 6尚未出臺,但是我相信在其最終發行之前一定存在不少周折。盡管如此,PHP所做出的貢獻已得到業界的充分認可,其前途是一片光明的。

標簽: PHP
主站蜘蛛池模板: 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 无缝方管|无缝矩形管|无缝方矩管|无锡方管厂家 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 好杂志网-首页| 宿舍管理系统_智慧园区系统_房屋/房产管理系统_公寓管理系统 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 硅胶制品-硅橡胶制品-东莞硅胶制品厂家-广东帝博科技有限公司 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 钢格板_钢格栅_格栅板_钢格栅板 - 安平县鑫拓钢格栅板厂家 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 壹作文_中小学生优秀满分作文大全 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 温室大棚建设|水肥一体化|物联网系统 | 短信营销平台_短信群发平台_106短信发送平台-河南路尚 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 哈尔滨治「失眠/抑郁/焦虑症/精神心理」专科医院排行榜-京科脑康免费咨询 一对一诊疗 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 |