PHP 基礎知識

基本語法


PHP標記

<?php
?>
//短標記
<?
?>

注釋

PHP 支持 C,C++ 和 Unix Shell 風格(Perl 風格)的注釋。

<?php
    echo "This is a test"; // This is a one-line c++ style comment
    /* This is a multi line comment
       yet another line of comment */
    echo "This is yet another test";
    echo 'One Final Test'; # This is a one-line shell-style comment
?>

類型


簡介

PHP 支持 8 種原始數據類型。
四種標量類型:

  • boolean(布爾型)
  • integer(整型)
  • float(浮點型,也稱作double)
  • string(字符串)

兩種復合類型:

  • array(數組)
  • object(對象)

最后是兩種特殊類型:

  • resource(資源)
  • NULL(無類型)

Boolean 布爾類型

boolean 表達了真值,可以為 TRUE 或 FALSE。

要指定一個布爾值,使用關鍵字 TRUE 或 FALSE。兩個都不區分大小寫。

要明確地將一個值轉換成 boolean,用 (bool) 或者 (boolean) 來強制轉換。但是很多情況下不需要用強制轉換,因為當運算符,函數或者流程控制結構需要一個 boolean 參數時,該值會被自動轉換。
當轉換為 boolean 時,以下值被認為是 FALSE:

  • 布爾值 FALSE 本身
  • 整型值 0(零)
  • 浮點型值 0.0(零)
  • 空字符串,以及字符串 "0"
  • 不包括任何元素的數組
  • 不包括任何成員變量的對象(僅 PHP 4.0 適用)
  • 特殊類型 NULL(包括尚未賦值的變量)
  • 從空標記生成的 SimpleXML 對象

所有其它值都被認為是 TRUE(包括任何資源)。

integer 整型

整型值可以使用十進制,十六進制,八進制或二進制表示,前面可以加上可選的符號(- 或者 +)。

二進制表達的 integer 自 PHP 5.4.0 起可用。

整型數的字長和平臺有關,盡管通常最大值是大約二十億(32 位有符號)。64 位平臺下的最大值通常是大約 9E18。

PHP 不支持無符號整數。

如果給定的一個數超出了 integer 的范圍,將會被解釋為 float。同樣如果執行的運算結果超出了 integer 范圍,也會返回 float。
PHP 中沒有整除的運算符。1/2 產生出 float 0.5。值可以舍棄小數部分強制轉換為 integer,或者使用 round() 函數可以更好地進行四舍五入。

<?php
var_dump(25/7);         // float(3.5714285714286) 
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4) 
?>

從布爾值轉換:FALSE 將產生出 0(零),TRUE 將產生出 1(壹)。
從浮點型轉換:當從浮點數轉換成整數時,將向下取整。

如果浮點數超出了整數范圍(32 位平臺下通常為 +/- 2.15e+9 = 2^31,64 位平臺下通常為 +/- 9.22e+18 = 2^63),則結果為未定義,因為沒有足夠的精度給出一個確切的整數結果。在此情況下沒有警告,甚至沒有任何通知!

float 浮點型

浮點數的字長和平臺相關,盡管通常最大值是 1.8e308 并具有 14 位十進制數字的精度(64 位 IEEE 格式)。

對于其它類型(除了string)的值,其情況類似于先將值轉換成整型,然后再轉換成浮點。

自 PHP 5 起,如果試圖將對象轉換為浮點數,會發出一條 E_NOTICE 錯誤消息。

某些數學運算會產生一個由常量 NAN 所代表的結果。此結果代表著一個在浮點數運算中未定義或不可表述的值。任何拿此值與其它任何值進行的松散或嚴格比較的結果都是 FALSE
由于 NAN 代表著任何不同值,不應拿 NAN 去和其它值進行比較,包括其自身,應該用 is_nan() 來檢查。

string 字符串

一個字符串 string 就是由一系列的字符組成,其中每個字符等同于一個字節。這意味著 PHP 只能支持 256 的字符集,因此不支持 Unicode 。
一個字符串可以用 4 種方式表達:

  • 單引號
  • 雙引號
  • heredoc
  • nowdoc(自 PHP 5.3.0 起)

heredoc

第三種表達字符串的方法是用 heredoc 句法結構: <<< 。在該運算符之后要提供一個標識符,然后換行。接下來是字符串 string 本身,最后要用前面定義的標識符作為結束標志。
結束時所引用的標識符必須在該行的第一列,而且,標識符的命名也要像其它標簽一樣遵守 PHP 的規則:只能包含字母、數字和下劃線,并且必須以字母和下劃線作為開頭。

要注意的是結束標識符這行除了可能有一個分號(;)外,絕對不能包含其它字符。這意味著標識符不能縮進,分號的前后也不能有任何空白或制表符。更重要的是結束標識符的前面必須是個被本地操作系統認可的換行,比如在 UNIX 和 Mac OS X 系統中是 \n,而結束定界符(可能其后有個分號)之后也必須緊跟一個換行。

如果不遵守該規則導致結束標識不“干凈”,PHP 將認為它不是結束標識符而繼續尋找。如果在文件結束前也沒有找到一個正確的結束標識符,PHP 將會在最后一行產生一個解析錯誤。

Heredoc 結構就象是沒有使用雙引號的雙引號字符串,這就是說在 heredoc 結構中單引號不用被轉義,但是上文中列出的轉義序列還可以使用。變量將被替換,但在 heredoc 結構中含有復雜的變量時要格外小心。

nowdoc

一個 nowdoc 結構也用和 heredocs 結構一樣的標記 <<<, 但是跟在后面的標識符要用單引號括起來,即 <<<'EOT'。Heredoc 結構的所有規則也同樣適用于 nowdoc 結構,尤其是結束標識符的規則,但是 nowdoc 中不進行解析操作。

變量解析

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 軟件體系結構 1.單主機結構 界面顯示、業務邏輯和數據存取功能都是在用戶主機上實現,需要下載軟件并安裝,易盜版 2...
    sidney_c閱讀 774評論 2 3
  • 一、php可以做什么 php是一種可以在服務器端運行的編程語言,可以運行在Web服務器端。 php是一門后臺編程語...
    空谷悠閱讀 3,155評論 4 97
  • 1. 字符串中的單引號與雙引號的區別? 兩者均能表示字符串,不同之處在于雙引號包含的變量($str)會被自動替換成...
    php_bruce閱讀 751評論 0 0
  • 簡介 PHP 支持 8 種原始數據類型。 四種標量類型: boolean(布爾型)/ integer(整型) / ...
    零一間閱讀 658評論 0 0
  • 簡介:PHP是一種通用開源腳本語言,運行在服務器端 執行原理: 客戶端向服務器發送一個請求,如果請求的是HTML,...
    Kylin824閱讀 295評論 0 1