關於php的發展前景


  • php7 宣稱速度比php5.6快兩倍,宣稱要打破一切舊規則

  • 2015年,php 7.0發布

  • 2016年,php 7.1發布

  • 2017年,php 7.2發布

  • 2018年,php 7.3發布

  • 2019年,php 7.4即將發布

  • 並且php8已經在討論中,並已確定支持JIT,應該會在2020年發布

  • 各版本cpu性能測試,php8比php5.0時快了40倍,比php5.6快了9倍,http://www.laruence.com/2016/12/18/3137.html

     看的出來php這幾年很活躍,php確實做出了很大的改變,性能得到了很大提升,同時也在向弱類型和解釋型動刀,弱
類型和解釋型都是php之前的優點,好用,簡單,快速開發,然而過去的有點不一定適合未來,php的團隊也注意到了這一
點,不斷進行類型規范和運算符規范的調整,比如支持類型聲明,支持運算符的類型異常拋出,以及數組和foreach做出的
改變。這所有的一切都是對php的一種修復,過去php太雜耍了,隱式類型自動轉換,看着很厲害,用着很舒服,實際上隱
藏了大量的未知BUG,可能看起來邏輯毫無問題的代碼,莫名其妙的不通過。弱類型在計算時必然要進行類型的判斷和轉換,由於php的數組以及字符串包裝的層次足夠深,必然浪費性能。
這也是為什么php開發速度快,號稱世界上最好的語言,卻只能蜷縮在web開發這一角,這是php的病,得治。隨着php7.0
 ~ 7.4的改進, 這些問題正在逐漸解決,然而路漫漫其修遠兮!

  • php 7.0
PHP 7.0.0 Alpha 1 [1]  使用新版的ZendEngine引擎,帶來了許多新的特性,以下是不完全列表:
性能提升:PHP7比PHP5.6性能提升了兩倍。 Improved performance: PHP 7 is up to twice as fast as PHP 5.6
全面一致的64位支持。 Consistent 64-bit support
以前的許多致命錯誤,現在改成拋出異常。Many fatal errors are now Exceptions
移除了一些老的不在支持的SAPI(服務器端應用編程端口)和擴展。Removal of old and unsupported SAPIs and extensions
新增了空接合操作符。The null coalescing operator (??)
新增加了結合比較運算符。Combined comparison Operator (<=>)
新增加了函數的返回類型聲明。Return Type Declarations
新增加了標量類型聲明。Scalar Type Declarations
新增加匿名類。Anonymous Classes
  • php 7.4 性特性
    1、php7.4 支持了預加載。現在傳統的 PHP 框架或者項目,都是有一次請求就加載和重新編譯一次文件的。預加載的實現
使得我們可以直接將 PHP 文件加載到內存中,並一次來永駐內存來應對后續的請求。(是不是看着這段話很熟悉)
    不過預加載也會帶來一點機器內存要求和一些損耗,你還需要注意的是,每次在更新完 PHP 文件之后,你需要重啟服務才可以使得新的 PHP 文件生效。
    2、屬性類型限定
    在定義類屬性的時候,你可以限定屬性的類型 string boolean 或者是一個類的實例:
    class GeiXue
    {
        public string $name;
        public Foo $foo;
    }
    3、類型限定的改進
    4、外部函數接口
        外部函數接口(Foreign Function Interface)總的來說就是允許你調用 C 代碼,也就是說,最好的應用場景可能就是:你以后寫 PHP 的擴展就可直接用 PHP 來寫了!
        不過需要注意的是:這目前來說還是比較復雜的,你最好還是有點 C 語言的基礎。
    5、null合並符的改進
    6、PEAR不再默認開啟,使用compose替換
    7、自定義對象序列化
            在 PHP 7.4 的時候,增加了 __serialize 和 __unserialize 這兩個魔術方法,你可以用來自定義對象的序列化。
  • php8
    繼php對於變量類型的加強之后,又支持了JIT, 引入JIT后,會擴大PHP的使用范圍,使得PHP成為一種真正的通用型語言,而不僅僅是個Web開發語言,盡管目前咋Web開發上面PHP做的確實是非常成功。
    對富CPU密集型計算方面的改善,可以在機器學習,3D渲染,2D(圖形)渲染和數據分析方面提高適用范圍。
    從此php將不再蜷縮在web開發的一角,將有機會和java、python展開全面競爭。
    其它的改進方案都還在討論中,希望php8繼續打破過去,浴火重生,成為真正的最好的語言!
  • p++ 的爭論
    PHP的核心開發者內部,關於是否由弱類型動態向強類型靜態語言轉變發生重大分歧 ,想了解詳情的可以點擊下面的連接
    
    https://externals.io/message/106503
    https://externals.io/message/106453

    一部分認為php引入的變量類型聲明是個錯誤,就應該保持PHP的本色,包括引入者本人,
    另一部分就是像我這樣希望PHP進行改變,向強類型靜態語言轉變。
    正如zeev說的,雙方沒有誰對誰錯,只不過前者考慮的是php的整個傳承和社區,以及php的特色
    而我認為,5G已經到來,物聯網普及化和AI的到來只是時間問題,現在的應用動輒上億用戶,大數據分析處理的需求即將白熱化,
    將來PHP何去何從?守着web領域一塊孤島?守得住嗎?以后的web僅僅是IO密集型嗎?
    計算密集型不一定,因為有分布式,各種流數據庫,但數據密集型是必然的。
    php即使對數據密集型有了很好的支持,那也是守住疆土而已,誰不想涿鹿中原呢。
    也許PHP搭上大數據這班車,這一切就不一樣。
    
    上個周聽說zeev 想要開發php方言p++,然后一輪投票后以0比50的結果被否決,最后zeev自己也投了反對票(2019-08-27) https://wiki.php.net/rfc/p-plus-plus


    最近唱衰PHP的人越來越多,其實PHP作為web語言,本身並沒有太大毛病,有毛病的是國內的PHP從業者。
    大多是培訓出來的,培訓出來也沒啥,畢竟大學一般沒有PHP專業,只要願意學,都可以進步。
    但是培訓出來隨便找個工作,也不深入學習,就天天糊弄,最后啥也不懂,搞得其他語言的開發者對PHPer有怨氣,領導不相信PHPer也是必然。
    我身邊這樣的例子太多了,說是工作三年,水平比我剛大學畢業時還低
    整整一年了,單點登錄還沒對接上,天天跟做單點登錄的部門吵架。(給部門拉仇恨)
    不會用kakfa,說php就不支持kafka。(給php招黑)
    接收參數后,先查詢sql,再驗證參數是否為空。( 真的,我都不敢想,還能有這種騷操作)
    真不怪別人黑PHP,這樣的人,我敢說要占PHPer的相當大一部分,
    當然我舉得這個例子有點極端,
    中庸點的就是,會寫寫增刪改查,對對接口,新東西給點時間也能湊合用,原理一概不知。
    整個PHP行業現在就是這么個情景,如果我是老板,也會對php失望。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM