php版本初識

? ? ? 和php相識于2015年(大二),第一次握手它有著不愉快的經(jīng)歷,曾誓言決不再接觸有關(guān)它的任何東西。無奈,年少輕狂,畢業(yè)后工作的內(nèi)容卻要天天和它打交道,papapa的打臉。既然和它有如此般孽緣奇分,那就好好待它,用心重新認(rèn)識它。

? ? ? ? 認(rèn)識它,還是的先從它的前世今生開始。php圈有個奇怪的現(xiàn)象:他們天天在使用php,卻極有可能對php的各個版本不了解,或是模糊認(rèn)識。這也難怪,我浪跡在各大博客時,發(fā)現(xiàn)php的分類簡直繁多。下面給出的是官網(wǎng)下載的壓縮包,我們可以從壓縮包的名字入手理解:php-5.6.34-nts-Win32-VC11-x64.zip


? ? 一、首先是php,簡直廢話,跳過。


? ? 二、5.6.34,同時也是人稱的PHP5,由第一個數(shù)字5決定. (注:PHP4由于太古老,對OO支持不給力已基本淘汰;PHP5是現(xiàn)在主流使用的版本;PHP6、7由于沒有在生產(chǎn)線上,此文不多介紹)。第二個數(shù)字6,代表PHP5后的6版本, PHP5其實有5.2、5.3、5.4、5.5、5.6版本,由于為了之后開發(fā),對框架和擴(kuò)展的兼容,所以先生選擇用5.6的版本。各個版本之間區(qū)別如下:

? ? ? ? PHP5.2 以前:autoload, PDO 和 MySQLi, 類型約束

? ? ? ? PHP5.2:JSON 支持

? ? ? ? PHP5.3:棄用的功能,匿名函數(shù),新增魔術(shù)方法,命名空間,后期靜態(tài)綁定,Heredoc 和 Nowdoc,const, 三元運算符,Phar

? ? ? ? PHP5.4:Short Open Tag, 數(shù)組簡寫形式,Traits, 內(nèi)置 Web 服務(wù)器,細(xì)節(jié)修改

? ? ? ? PHP5.5:yield,list() 用于foreach, 細(xì)節(jié)修改

? ? ? ? PHP5.6: 常量增強(qiáng),可變函數(shù)參數(shù),命名空間增強(qiáng)

深入了解見鏈接:? ? 01 https://www.cnblogs.com/myvic/p/7707437.html

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 02 https://www.cnblogs.com/wawahaha/p/4660354.html


? ? 三、nts (Non Thread safe),非線程安全。如果沒有這個表示即時ts(Thread safe)。為什么會有這樣的區(qū)分呢?什么情況下使用非線程安全,什么時候要使用線程安全呢?別爪機(jī),容我緩緩道來。大寫,只有windows&&PHP5.2.1之后,才有nts和ts之分。

? ? 3.1、Non Thread Safe是非線程安全,在執(zhí)行時不進(jìn)行線程(Thread)安全檢查。

? ? 3.2、Thread Safe是線程安全,執(zhí)行時會進(jìn)行線程(Thread)安全檢查,以防止有新要求就啟動新線程的CGI執(zhí)行方式而耗盡系統(tǒng)資源。


? ? 3.3、說到CGI,不得不提和并存的ISAPI。這是php的兩種執(zhí)行方式。

? ? ? ? 3.3.1、CGI,多進(jìn)程模式。模式對于每個HTTP請求都需要開辟一個進(jìn)程,即重新加載和卸載整個PHP環(huán)境,其消耗巨大。

? ? ? ? 3.3.2、由此推出了CGI的升級模式:FastCGI 。FastCGI可以讓PHP的進(jìn)程重復(fù)利用而不是每一個新的請求就重開一個進(jìn)程。同時FastCGI也可以允許幾個進(jìn)程同時執(zhí)行。這樣既解決了CGI進(jìn)程模式消耗太大的問題,又利用上了CGI進(jìn)程模式不存在線程安全問題的優(yōu)勢。 (抑制進(jìn)程開辟的思路)

? ? ? ? 3.3.3、ISAPI, 多線程模式。執(zhí)行方式是以DLL動態(tài)庫的形式使用,可以在被用戶請求后執(zhí)行,在處理完一個用戶請求后不會馬上消失,所以需要進(jìn)行線程安全檢查,這樣來提高程序的執(zhí)行效率。

? ? ? ? (在前提條件全局配置php,或是在php目錄下啟動php啦啦啦),? 可以通過命令函窗口運行php -r "phpinfo();"。 查看其中的 Thread Safety 項,這個項目就是查看是否是線程安全,如果是:enabled,一般來說應(yīng)該是ts版,否則是nts版。 了解完這幾點之后,如果看客你是選擇nts,那么建議使用FastCGI模式啟動;如果是ts,那么建議使用ISAPI模式。無論那種搭配,其實最終的目的是:控制線程或是進(jìn)程數(shù),降低資源消耗。


? ? 四、win32,我下載了幾個windows的安裝包,均帶有這個標(biāo)記。要強(qiáng)行解釋的話,可能就是windows系統(tǒng)版本的php安裝包吧吧吧。



? ? 五、VC11.其實還有VC6、VC9、VC11的區(qū)別。

? ? ? ? VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設(shè)的,那你就選擇VC6版本。( 這個問題不大,因為從php 5.3,已經(jīng)沒有vc6版本提供下載了 )

? ? ? ? VC9版本是使用Visual Studio 2008編譯器編譯的, 是針對IIS服務(wù)器的版本,沒有對APACHE的支持 。如果你的PHP是用IIS來架設(shè)的,那你就選擇 VC9版本。 VC9版本要求用戶安裝Microsoft Visual C++ 2008 SP1 Redistributable Package(x86 | x64)

? ? ? ? VC11版本是使用Visual Studio 2012編譯器編譯的 。VC11版本要求用戶安裝Visual C++ Redistributable for Visual Studio 2012(x86 | x64)


? ? 六、x64對應(yīng)64位系統(tǒng),x86對應(yīng)32位系統(tǒng)。


? ? 七、zip,解壓后可以直接使用。當(dāng)然,不嫌麻煩者,可以下載source code。用VS編譯生成文件,這也是可行的。

? ? 我是先生,找尋著那位迷路的Miss。最后,愿各位phper,合上電腦的剎那,有著俠客收劍入鞘的驕傲!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容