PHP到底有多糟糕?

時間 2021-05-30 00:04:00

1樓:

糟糕到:

從很多年前,大家就說PHP要涼,結果這麼多年過去了,PHP還在涼的路上,一直沒到終點。

糟糕到:

PHP能給從業者帶來收益,有了這個收益能養家餬口,能生存生活。

糟糕到:

在技術社群、以及技術社群之外,給了很多無聊的人去為了嘲諷而嘲諷。

沒啥意義其實,這就是個工具,我們的根本目的其實還是為了工作、為了掙錢、為了更好地生活。

就好比你去菜園,是帶鋤頭、鐮刀、還是鏟子,取決於你要做什麼,而不是說因為鏟子也能挖地,也能割韭菜,你就說鏟子不好,難道根本目的不是去菜園完成任務嗎?

2樓:

目前刷了一圈,懵懂的時候自接觸程式設計以來用過vb,易語言,C,http://

vb.net

,C++,C#。當初學生時代php和py我選擇了phper因為放棄了winform轉向web,而現在我也想放棄。當要說開發和環境配置速度,以及bug修復快速上線,我所了解的PHP是很快的。

為什麼想放棄PHP真的是因為PHP帶來的糟糕性可能真的在後期回頭看來自己都是懵逼的!而多執行緒與ws的支援簡直也是GG。但他的好處對於後端,比如上框架to,ci等,一旦發現問題止損上線速度可見是很樂觀的。

PHP不是最糟糕的語言也不是最好的語言,但他很實用,上手成本賊低。

如果還沒想好怎麼換,那我依然選擇PHP吧,PHP到底多糟糕?其實還好,至少他也給我帶來了樂趣與入金的快樂。

希望PHP7或者PHP*再進化的快些,完善這個歷史遺留的詬病

3樓:王小貓

我列舉一下我不喜歡php的幾個原因:

1)<?php 這算乙個

2)$ 美元符號定義變數

3)使用 -> 訪問物件的屬性和方法

4)使用 . 作為字串的鏈結符

5)大量的系統內建函式,而不是類

6)陣列 key=>value 輸入麻煩,沒有 : 來的直接

4樓:

我能說個新的麼,在php7.2裡面直接把count函式的行為改掉,如果傳進來的引數不是countable的就warning,這很明顯break BC了。實際上很多人從5.

6公升級到7.0都好好的,從7.1公升級到7.

2很難,後來為了擦屁股弄出個is_countable函式。一直以來相容性是php最優秀的特點,可是最近社群一些開發者彷彿有潔癖一樣寧願break BC都要改掉一些他們認為錯誤的地方,殊不知給php社群帶來了多大的傷害。

5樓:Abby Chau

1. 多連線和永續程式很難管理。但這可以用workman swoole 等接管生命週期。

2. Zend API 的生態很差。擴充套件很難寫。

3. Array 很強但array function 很多而且寫法囉嗦。

4. 欠缺fp 寫法。

5. 沒有pattern matching。

6. Php documator 和mailing list 的管理方法像停留在上個時代。

7. 只能做網頁和API. 難以和其他語言內聯或巢狀。

但暇不掩瑜。這始終是在網站上開發效率乘執行效率最高的工具。

6樓:weapon

分享幾個遇到的坑吧。也算是php的設計缺陷吧,因為它完全可以不那麼設計。

為什麼第三第四個列印的是 b ? 再看看 C 語言中的:

這原因其實是因為 PHP 中的三目運算子是左結合式的。1 ? "a" :

0 ? "b" : "c" 當成 (1 ?

"a" : 0) ? "b" :

"c" 。

其他語言的三目運算都是採用右結合的方式 1 ? "a" : (0 ? "b" : "c") ,只有 php 這麼鶴立獨行。

做個練習題?

<?

php$arg

='T'

;$vehicle=(

$arg

=='B')?

'bus':(

$arg

=='A')?

'airplane':(

$arg

=='T')?

'train':(

$arg

=='C')?

'car':(

$arg

=='H')?

'horse'

:'feet'

;echo

$vehicle

;字串難道不是只有空字串才認為是false嗎?php卻告訴我不是。

在其他語言裡, 比如js,python,字串只認為空字元是 false 。php裡, 空字串和 '0' 都會被當 false 。

這個異常從 php7.0 開始可以捕獲了:

但如果設定了 set_error_handler 又無法捕獲了:

本來還喜出望外的,結果還是不行。

關於這個問題,在sf上有人提出:這是php中__call和__callStatic在被繼承後會產生的bug?

鳥哥在部落格中 《PHP的Calling Scope》解釋說:「在PHP中, 判斷靜態與否不是靠 :: (PAAMAYIM_NEKUDOTAYIM)符號, 而是靠 calling scope 」 。

文中解釋了 parent:: 是包含了變數的作用域的。但例子中的是 A::

的呼叫方式,所以感覺解釋不全。

而且如果去掉 B 和 A 的繼承關係,呼叫都會是 __callStatic 。

其它坑遇到再來補充。

7樓:瘋魔

我不知道在問這個問題的時候你是什麼乙個狀態?

已經是在職碼農?

程式設計初學者,不知道選哪個語言繼續下去?

還是已經是php碼農,想讓人來捧你?

以上不同的狀態都有不同的答案

8樓:

題主,是打算創造新語言,超越PHP了嗎?能在使用者數量,語言效率,開源庫等方面做到PHP的一半嗎?能免費給大家用嗎?

如果能,隨便你怎麼說?如果不能,那你這樣的牴觸又能改變什麼呢?

9樓:wujun

早期包袱太多,比如函式命名混亂,現在雖然大多數後來的函式都改成在下劃線間隔,當時早期函式的坑還是太多,比如htnlspecialchars這樣神奇的命名,據說是Rasmus大神在發明php的時候用函式長度作為hash。笑

最後來一句扎克伯格曾經說過 php是世界上最好的語言

10樓:AdamDeng

因為這永遠是個偽命題。

如果乙個開發者連一些很基礎的東西都不了解,不知道什麼是OOP,不理解程序和執行緒的區別,不理解資料庫的正確使用方式。

那它使用任何語言,不管這個語言被描述得多麼好,多麼有前途,他都只是乙個底層碼農。

開發的核心技能永遠都是程式設計思想,演算法設計,資源排程,需求分析,語言選擇排在很靠後的位置。

今天你覺得PHP很糟糕,可能是因為它並不適用你現在的專案需求。

例如銀行要是用PHP去做支付系統的話是傻子。

誰都知道它不合適這種邏輯和事務完整性要求極高的專案。

如果用C++去做乙個網路社群專案的話也是白痴。

開發和維護成本會高得無法忍受。

11樓:XunselF

可能因為我的能力不夠所以不能夠去很深的了解php,但是php是我真正意義上學過的第一門語言,也是讓我愛上程式設計的,我只能說不了解它就道聽途說的噴,我覺得沒有資格。

12樓:文卡卡

PHP也算是門DSL吧,通用性比其他確實不咋地,但是糟糕不糟糕也不完全是由這項決定的,別總是拿學院派那套理論說事,搬磚語言管他設計的優不優美,沒了ADT等於說都不能叫程式語言的咯,評判程式設計師的價值在於他的產出,他能做啥,而不是他會啥,雖然會啥有時候也能決定了你能做啥的高度,再說了又不是吊死在一棵樹上,學習不是也有個迭代過程麼。。

13樓:FGO 輝夜

PHP能讓不懂程式設計的普通人也能極速建好網站但這速度用其他語言加上一些調校得不錯的框架同樣能做到,然後兩者一比,php出來的基本都會有各種問題,在後續擴充套件上有各種問題,只是其他語言對碼農的要求高而已

老司機不會介意自己用的是86還是FD3S,但讓新手駕86會直接滑下山坡的...

PHP的糟糕點是對新手非常友善,同時這也是其長處

14樓:

老婆看久了總會疲勞,你看她,使用時的姿態一點都不優雅,肚子上全是累積下來的脂肪,越看缺點越多。這時候,看到乙個清新亮麗的少女走過來,眼睛裡全是優點沒有缺點,頓時喜新厭舊。然而當你和新來的少女相處久了就會發現,其實每個人身上都有缺點也有優點,喜新厭舊是因為碰到少女會自動忽略她身上的一些缺點,當初就是這麼愛上老婆的。

反反覆覆才發覺,其實最好的一直在身邊,還是老婆好,上得了廳堂下得了廚房,不矯情沒脾氣,相當實用。而且隨著年齡的增長,老婆的技術水平也不斷在提公升呀,比如swoole一出,立刻母儀天下!

另一方面,老婆的確不是萬能的,她的確沒有一些小姑娘走路優雅啊,的確不如專業的工作者姿勢多啊,的確沒有專業工作者那樣併發出出進進高啊。實話實說,哪個程式設計師不想有齊人之福,有本事納妾固然好,就怕身子骨虛!

我承認有2個女人。

15樓:

恕我直言,大家都是同乙個物種,何必互相黑呢。在老闆看來,語言甚至程式猿都只是乙個工具而已,什麼場合用什麼工具嘛,只要能達到目的就行

16樓:cz2016

目的不同,功能結構不同,生產環境不同怎麼比較?現在市面上每一種程式語言都有自己獨到的地方所以才能占領一定的市場份額。這就好比說你家的廚房裡,鍋碗瓢盆你只會在適當的時候拿出適當的工具去使用它,你總不能拿盆吃飯拿碗盛菜吧。

你說你任性偏要這麼做,當然可以,你腦子壞了別人又管不了,可是換到乙個公司乙個專案上就是專業人員對自己的職業負責,都是白花花的銀子。最後總結,現有的每個程式語言都有自己獨到的地方,明顯的優缺點,沒必要比較什麼,那只是你手裡的鍋碗瓢盆而已。還有真正糟糕的語言都已經泯滅在歷史長河裡了,對於一種已經被世人檢驗並且已經很好的運用的工具提出質疑,我佩服你的勇氣,不是天才就是傻x。

現在搞技術的越來越浮躁了,沒勁兒~

17樓:樂子侃生活

PHP不能說是糟糕,只能說外行就是看個面貌,長得醜的人你就說他是個糟糕的人麼?

即使PHP有很多不完美的地方,但是還是給人們解決了很多實際的問題,你說他是糟糕麼 ?

18樓:張正誠

仔細閱讀一遍此問題下php開發者們的回答就明白了吧。

php寫久了會讓你不知不覺陷入一種「程式寫出來能跑就行」的「實用主義」心態,這對乙個碼農的成長來說是不太好的。

19樓:菜五歲

去年去看博人傳大電影的時候,佐助對博人說了一句話,至今仍然印象深刻,但原話不大記得了:你只看到了現在的鳴人,但你沒有看到在不斷進步的鳴人。

PHP也一樣,雖然以前跟鳴人一樣是個問題兒童,但他們都在不停的努力進步,變得更好,更何況,我覺得PHP已經屌絲逆襲。

生物科學到底有多糟糕?

丙隊長 想本科畢業就找個工作安穩過日子,那就趕緊轉專業。生物一般讀研究生才行,本科畢業沒啥意義,只能去當銷售或者去實驗室做提取,沒啥成長空間。生物行業現在供大於求,所以如果自身實力不是非常強,還是趁早轉行。 服從調劑的往往是不熱門的,不熱門意味著什麼呢?兩種可能 1 夕陽產業,生物應該不是.鋼鐵也許...

風暴英雄的匹配系統到底有多糟糕?

馬丁丶路德銀 經歷過7連勝8連敗,大起大落,大喜大悲 勝時,送人頭都能贏,隊友1打5 敗時,陣容就輸一半,逆風開局 總之,輸贏看天,技術意識放兩旁 玩了幾天亞服,我就問問大亂鬥能不能改改強制玩家不能組隊?本來就是娛樂用的,tm活生生打成山口山戰場,5人黑打野人能贏一晚上,要不要點b臉? Munan ...

日本的網購體驗(包括網上點外賣)到底有多糟糕?

霜衣 煩死了,很多商家在亞馬遜和樂天沒有店,買他們的東西得去他們官網。還得註冊號,再綁卡,郵費普遍660日元,煩!國內方便多了,發貨還快。 呃我第一次看到說日本網購體驗糟糕的 因為我平時主要就是在日亞和樂天購物,日亞真好用,不用算計運費,還有中古可以買,我經常找1円的中古書籍和遊戲買,預定也很好。買...