- 相關(guān)推薦
原來PHP變量、方法名可以用中文
【拓展閱讀】
PHP語言最令人“抓狂”的特性
轉(zhuǎn)換令人頭痛
在利用PHP進(jìn)行項目創(chuàng)建的過程中,最大的挑戰(zhàn)之一在于牢記我們哪些時候需要輸入HTML、而哪些時代需要輸入PHP代碼。將二者相結(jié)合正是PHP語言的一大賣點(diǎn),但要充分發(fā)揮其優(yōu)勢卻著實不是易事。當(dāng)我們查看某個文件并關(guān)注其中的代碼時,首先需要搞清楚的就是—那些迫使我們不得不從HTML編寫轉(zhuǎn)向創(chuàng)建服務(wù)器指令的標(biāo)簽都在哪里?各位必須要高度重視這些標(biāo)簽,因為只有這樣我們才能將代碼與標(biāo)記整合起來并使其順暢運(yùn)作。當(dāng)然,大多數(shù)情況下它只會讓人暈頭轉(zhuǎn)向。
標(biāo)記的迷宮
將服務(wù)器指令與瀏覽器標(biāo)記結(jié)合起來實在是一種失誤。在Java這方面,其研發(fā)團(tuán)隊嚴(yán)格遵循著MVC模式。數(shù)據(jù)模型被歸于一個文件中,用于控制視圖的布局結(jié)構(gòu)被歸于另外的文件中,而用于構(gòu)建控制器的邏輯也擁有自己的歸屬文件。將這些條目區(qū)分并隔離開來能夠讓整個項目變得更有條理。但在PHP方面,最基本的設(shè)計思路就是開發(fā)者應(yīng)當(dāng)將HTML標(biāo)記與服務(wù)器的控制器邏輯雜糅在一起。雖然我們不是沒辦法把它們區(qū)分開—大多數(shù)人也確實是這樣做的—不過一旦開始專門處理這項任務(wù),很多朋友可能會像我們一樣問自己“為什么我們非要用PHP不可?”
命名約定的不一致性與特殊性
大家知不知道我們什么時候需要用到下劃線符號?可以看到,base64_encode方法中用到了下劃線,但urlencode則沒有。此外,php_uname這一名稱中使用了下劃線,而phpversion則沒有。為什么會這樣?有沒有人考慮過這個問題?大家有沒有編輯過API?
與此同時,strcmp函數(shù)是不能夠大寫的,但strcasecmp卻可以。另外,strpos不能大寫,stripos則可以。到底是其中的字母“i”決定了能否大寫,還是函數(shù)整體名稱決定的?誰能記得住這么多亂七八糟的規(guī)則?當(dāng)然,開發(fā)者們必須得記清楚。
災(zāi)難般的排序
我們到底需要多少種排序函數(shù)?Java擁有一項基礎(chǔ)排序函數(shù)外加一個適用于所有對象的簡單接口。如果大家希望使用其它算法、動手添加進(jìn)去即可,而且大多數(shù)情況下標(biāo)準(zhǔn)函數(shù)已經(jīng)完全夠用。而在PHP這邊,光是排序函數(shù)就能列出一條長長的清單:usort、sort、uksort以及array_sort等等(請注意,其中有一些還需要用到下劃線)。所以,請大家馬上把這些內(nèi)容記到小本上,并祈禱自己在實際使用時不會搞混吧。
開源存在一定局限性
PHP也許確實擁有開源的諸多優(yōu)勢,但緩存等卓越功能卻只存在于商用版本當(dāng)中。當(dāng)然,這就是現(xiàn)實社會,畢竟Zend需要借此賺取利潤。再有,該公司還需要通過向特定用戶群體出售最佳版本的方式支持整個PHP項目。抱怨這一點(diǎn)就像抱怨地心引力帶來的不便一樣,正確但卻毫無意義—地球就在那里,根本不鳥你喜不喜歡。請大家活得理性一些,別總幻想著人們都能活在烏托邦式的開源環(huán)境當(dāng)中。
糟糕的命名空間
大家有沒有創(chuàng)建自己函數(shù)的打算?如果有,請首先確定到底要使用PHP 5.3或者其后續(xù)版本,因為這里正是命名空間出現(xiàn)的分界線。如果大家希望使用早期版本,則必須確保編碼內(nèi)容與庫之間不存在沖突—畢竟在早期發(fā)展階段,PHP中的所有內(nèi)容都具備全局化屬性。如果大家決定使用PHP 5.3并接受命名空間的加入,那么請作好準(zhǔn)備迎接“反斜杠”—一個丑陋的標(biāo)點(diǎn)符號—的降臨。
糟糕的type安全
這個問題簡直可怕,首先舉個PHP程序員們喜聞樂見的例子:
(string)"false"
(int)0
請注意,這并不屬于那種某些PHP支持者所爭論的“函數(shù)副作用”的典型情況。畢竟t當(dāng)中也包含著大量由于type轉(zhuǎn)換所引發(fā)的同類情況。事實上,這一行 想表達(dá)的是:左側(cè)為字符串,右側(cè)為一個整數(shù)。只不過左側(cè)與右側(cè)內(nèi)容完全相等。照這樣說來,如果讓PHP的設(shè)計者負(fù)責(zé)管理、世界上的每個人都能彼此和睦相處。
【原來PHP變量、方法名可以用中文】相關(guān)文章:
PHP的變量09-10
PHP變量介紹02-28
PHP的變量介紹11-07
什么是PHP的變量07-29
php靜態(tài)成員變量06-22
原創(chuàng)PHP教程:變量10-22
php變量定義方法08-12
PHP的變量是什么06-10