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