- 相關(guān)推薦
php是什么型語(yǔ)言
PHP寫(xiě)的網(wǎng)站占所有網(wǎng)站的大概 80%了。那么你知道php是什么型語(yǔ)言了嗎?PHP 是一門(mén)弱類(lèi)型語(yǔ)言,跟yjbys小編一起來(lái)學(xué)習一下吧~
PHP 是一門(mén)弱類(lèi)型語(yǔ)言
我們注意到,不必向 PHP 聲明該變量的數據類(lèi)型。
PHP 會(huì )根據變量的值,自動(dòng)把變量轉換為正確的數據類(lèi)型。
在強類(lèi)型的編程語(yǔ)言中,我們必須在使用變量前先聲明(定義)變量的類(lèi)型和名稱(chēng)。
1. 先定義一些基礎概念
Program Errors
trapped errors。導致程序終止執行,如除0,Java中數組越界訪(fǎng)問(wèn)
untrapped errors。 出錯后繼續執行,但可能出現任意行為。如C里的緩沖區溢出、Jump到錯誤地址
Forbidden Behaviours
語(yǔ)言設計時(shí),可以定義一組forbidden behaviors. 它必須包括所有untrapped errors, 但可能包含trapped errors.
Well behaved、ill behaved
well behaved: 如果程序執行不可能出現forbidden behaviors, 則為well behaved。
ill behaved: 否則為ill behaved...
2. 有了上面的概念,再討論強、弱類(lèi)型,靜態(tài)、動(dòng)態(tài)類(lèi)型
強、弱類(lèi)型
強類(lèi)型strongly typed: 如果一種語(yǔ)言的所有程序都是well behaved——即不可能出現forbidden behaviors,則該語(yǔ)言為strongly typed。
弱類(lèi)型weakly typed: 否則為weakly typed。比如C語(yǔ)言的緩沖區溢出,屬于trapped errors,即屬于forbidden behaviors..故C是弱類(lèi)型
前面的人也說(shuō)了,弱類(lèi)型語(yǔ)言,類(lèi)型檢查更不嚴格,如偏向于容忍隱式類(lèi)型轉換。譬如說(shuō)C語(yǔ)言的int可以變成double。 這樣的結果是:容易產(chǎn)生forbidden behaviours,所以是弱類(lèi)型的
動(dòng)態(tài)、靜態(tài)類(lèi)型
靜態(tài)類(lèi)型 statically: 如果在編譯時(shí)拒絕ill behaved程序,則是statically typed;
動(dòng)態(tài)類(lèi)型dynamiclly: 如果在運行時(shí)拒絕ill behaviors, 則是dynamiclly typed。
3. 誤區
大家覺(jué)得C語(yǔ)言要寫(xiě)int a, int b之類(lèi)的,Python不用寫(xiě)(可以直接寫(xiě)a, b),所以C是靜態(tài),Python是動(dòng)態(tài)。這么理解是不夠準確的。譬如Ocaml是靜態(tài)類(lèi)型的,但是也可以不用明確地寫(xiě)出來(lái)。。
Ocaml是靜態(tài)隱式類(lèi)型
靜態(tài)類(lèi)型可以分為兩種:
如果類(lèi)型是語(yǔ)言語(yǔ)法的一部分,在是explicitly typed顯式類(lèi)型;
如果類(lèi)型通過(guò)編譯時(shí)推導,是implicity typed隱式類(lèi)型, 比如ML和Haskell
4.下面是些例子
無(wú)類(lèi)型: 匯編
弱類(lèi)型、靜態(tài)類(lèi)型 : C/C++
弱類(lèi)型、動(dòng)態(tài)類(lèi)型檢查: Perl/PHP
強類(lèi)型、靜態(tài)類(lèi)型檢查 :Java/C#
強類(lèi)型、動(dòng)態(tài)類(lèi)型檢查 :Python, Scheme
靜態(tài)顯式類(lèi)型 :Java/C
靜態(tài)隱式類(lèi)型 :Ocaml, Haskell
【php是什么型語(yǔ)言】相關(guān)文章:
php是什么06-05
PHP語(yǔ)言的簡(jiǎn)介08-13
PHP語(yǔ)言的優(yōu)勢11-05
php是什么格式07-29
php樹(shù)型類(lèi)實(shí)例代碼10-23
如何學(xué)習PHP語(yǔ)言07-28
PHP語(yǔ)言就業(yè)前景06-24
php是什么意思09-15
PHP語(yǔ)言的特性盤(pán)點(diǎn)201707-19
PHP語(yǔ)言需要避免的誤區08-26