php為什麼弄點號連接字元串?

我知道的大部分語言都是加號來連接字元串的。


PHP的老大哥Perl就是用.連接字元串,用$修飾變數.

Perl和PHP用.連接字元串的好處是不用像JS用+連接字元串時進行額外的判斷,更好理解,同時性能更好.

Perl和PHP用$修飾變數的好處是變數的命名不受關鍵詞和保留字約束.

C語言中結構體指針通過-&>訪問結構體變數,C++中指針對象通過-&>訪問成員.

Perl也使用-&>,所以使用-&>並非PHP首創.

生成一個包含100萬個元素的關聯數組(映射/字典),PHP7的耗時僅為Node7的1/3,就連PHP5都比Node7要快. 測試中主要包含時間戳獲取,字元串拼接,字典生成這幾個操作.


對於像PHP、JS 這種弱類型來說,+既是數字的相加,也是字元串的連接,問題來了:JS中 var a = 1+1; var a="1"+1; var a = "1"+"1"; 這些結果a是多少?是2還是11?你可能要花幾分鐘去思考或查資料。

但PHP不用思考就知道全都是1+1=2啊這麼簡單,因為PHP裡面點號才是字元串連接。

再問一個為什麼JS不能設計成用點號作字元串連接?因為對象。JS裡面是用點號調用對象屬性和方法,用同一個就會矛盾。PHP裡面用橫線箭頭,看似很蠢,實則避免了各種混亂,大智若愚啊。


為什麼Python在新建實例的時候不用new 呢?

為什麼C++在聲明字元串的時候不能用單引號呢?

為什麼JAVA要用import而不用include呢?

為什麼object C不用interface呢?

為什麼C++的繼承要用:不用extends呢?

為什麼要問這種問題呢?


php 的點連接字元串和美元符號變數聲明來自於 perl。

而在 php 出現之前,絕大部分 web cgi 程序不是直接用 c 就是用 perl 寫的。


還是用~最合適。有什麼語言用~的


並非都用+,asp還用呢。


php是世界上最好的語言,

特立獨行也沒什麼大不了的,


推薦閱讀:

我現在JS還算熟練,在糾結繼續研究前端還是學習個伺服器端語言?
yield 是什麼?
目前來說在網站架構方面採用nobackend這種方案構建是否真的可行?
PHP能做什麼好玩的事?
遊戲伺服器 php框架選擇?

TAG:PHP | PHP開發 | PHP學習 |