這篇文章主要介紹了PHP定義字串的四種方式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
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、Null 字元串、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__:返回當前檔案的命名空間的名稱。