1、單引號
在單引號中,任何特殊字符都會按原樣輸出【除\\和\‘將會被轉義輸出】僅僅只有單引號、反斜槓被轉義
2、雙引號
在雙引號中,遇到$將會解析該變量;
雙引號中會轉義反斜槓的轉義字符;
單雙引號之間的區別
雙引號會替換變量的值,而單引號會把它當做字符串輸出。
對於轉義的支持
性能速度問題,由於雙引號中的字符串需要檢測是否含有$符號修飾的變量,因此從理論上講,單引號是比較快的(單引號效率比較高)
3、heredoc
heredoc可以理解爲不使用雙引號來定義字符串,但效果與使用雙引號一致。【此時雙引號相當於普通字符】(長字符串)
語法要求:
1、開始標記和結束標記使用相同的字符串,通常以大寫字母來寫。
2、開始標記後不能出現空格或多餘的字符。
3、結束標記必須頂頭寫,不能有縮進和空格,且在結束標記末尾要有分號 。
4、位於開始標記和結束標記之間的變量可以被正常解析,但是函數則不可以。
此時雙引號僅僅只是一個普通字符;其他的效果和雙引號的字符串效果一致
例:
<?php
$var = 'this is suifeng';
echo <<<"ETO"
$var <br/>
"666666"
ETO
輸出:
this is suifeng
666666
4、nowdoc
同理,nowdoc是不使用單引號來定義,但效果相當於使用單引號來定義的字符串。【此時單引號相當於普通字符】
數據類型
三大數據類型【標量、符合、特殊】
浮點類型
浮點類型不能運用到比較運算符中
布爾類型
false的七種情況
整數0、浮點0.0、布爾false、空字符串、0字符串、空數組、null
數組類型
超全局數組
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
null三種情況
直接賦值爲null、未定義的變量、unset()銷燬的變量
常量
定義
const define
const更快,是語言結構,define是函數
define不能用於類常量的定義,const可以,常量一經定義不能修改,不能刪除
預定義常量(魔術常量)
- __LINE__ :返回文件中的當前行號。也可寫成__line__。
- __FILE__:返回當前文件的絕對路徑(包含文件名)。
- __DIR__:返回當前文件的絕對路徑(不包含文件名),等價於 dirname(__FILE__)。
- __FUNCTION__:返回當前函數(或方法)的名稱。
- __CLASS__:返回當前的類名(包括該類的作用區域或命名空間)。
- __TRAIT__:返回當前的trait名稱(包括該trait的作用區域或命名空間)。
- __METHOD__:返回當前的方法名(包括類名)。
- __NAMESPACE__:返回當前文件的命名空間的名稱。