您好,登錄后才能下訂單哦!
這篇文章主要介紹了php是靜態語言嗎的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇php是靜態語言嗎文章都會有所收獲,下面我們一起來看看吧。
php是動態的語言。php是一種動態、弱類型的腳本語言,它在運行時才確定數據類型,且用變量前不用提前聲明,變量在第一次賦值時會被自動創建;PHP中數據類型可被忽略,當對一個變量賦值時,不需考慮它的類型,待變量被賦予某個值后,才具有某種類型。
本教程操作環境:windows7系統、PHP7.1版、DELL G3電腦
php是動態的語言。
php是一種動態類型、弱類型的腳本語言;使用變量前不用提前聲明,變量在第一次賦值時會被自動創建,且當對一個變量賦值時,不需考慮它的類型,待變量被賦予某個值后,才具有某種類型。
<?php $a = 1; $b = "2"; $c = [1,3,4]; var_dump($a); var_dump($b); var_dump($c); ?>
因此,在進行變量計算時,會出現自動類型轉換的現象。
在 PHP 中,自動類型轉換通常發生在不同類型的變量混合運算時,若參與運算的變量類型不同,則需要先將它們轉換成同一類型,然后再進行運算。
通常只有四種標量類型(integer、float、string、boolean)和 NULL 才會在運算中自動轉換類型。注意,自動類型轉換并不會改變變量本身的類型,改變的僅是這些變量的求值方式。
自動類型轉換雖然是由系統自動完成的,但在混合運算時,自動類型轉換也需要遵循按數據長度增加的方向進行,以保證精度不降低。規則如下圖所示。
有布爾型值參與運算時,TRUE 將轉化為整型 1,FALSE 將轉化為整型 0,然后再參與運算。
有 NULL 值參與運算時,NULL 值將轉化為整型 0 后再進行運算。
有 integer 類型和 float 類型的值參與運算時,會先把 integer 型的值轉成 float 類型后再進行運算。
有字符串和數字型(integer、float)的值參與運算時,字符串類型會先轉換為數字,再參與運算。轉化后的數字是從字符串開始的數值型字符串,如在字符串開始的數值型字符串不帶小數點則轉為 integer 類型的值。如果帶有小數點則轉為 float 類型的值,例如:字符串“123ab”轉為整數 123,字符串“123.45ab”轉為浮點數 123.45,字符串“abc”轉為整數 0。
【示例】下面通過一個簡單的示例來演示一下 PHP 中自動類型轉換。
<?php header('content-type:text/html;charset=utf-8'); $str = '100abc'; $str += 5; echo '此時 $str 的類型為:'.gettype($str).', 值為:'.$str.'<br>'; $str += 3.14; echo '此時 $str 的類型為:'.gettype($str).', 值為:'.$str.'<br>'; $str = null + 'C語言中文網'; echo '此時 $str 的類型為:'.gettype($str).', 值為:'.$str.'<br>'; ?>
擴展知識:動態語言和靜態語言的介紹和區別
動態語言(弱類型語言)是運行時才確定數據類型的語言,變量在使用之前無需申明類型,通常變量的值是被賦值的那個值的類型。比如Php、Asp、JavaScript、Python、Perl等等。
$a = 1; $b = "2"; $c = [1,3,4];
靜態語言(強類型語言)是編譯時變量的數據類型就可以確定的語言,大多數靜態語言要求在使用變量之前必須生命數據類型。比如Java、C、C++、C#等。
String s="hello"; //String 類型的變量 boolean b=true; //boolean 類型的變量 int i=0; //int 類型的變量
弱類型語言是數據類型可以被忽略的語言。它與強類型語言相反,一個變量可以賦不同數據類型的值。一個變量的類型是由其上下文決定的,效率更高。
強類型語言是必須強制確定數據類型的語言,一旦一個變量被指定了某個數據類型,如果不經過強制轉換,那么它就永遠是這種數據類型。一個變量的類型是申明的時候就已經確定的,更安全。
區別:
靜態語言由于強制聲明數據類型,讓開發工具(IDE)對代碼有很強的判斷能力,在實現復雜的業務邏輯和開發大型商業系統、以及那些聲明周期很長的應用中,開發者可以依托強大的IDE來更高效、更安全地開發。
動態語言思維不受約束,可以任意發揮,把更多的精力放在產品本身上;集中思考業務邏輯實現,思考過程就是實現過程。
關于“php是靜態語言嗎”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“php是靜態語言嗎”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。