- 真題:PHP字符串可以使用哪三種定義方法以及各自的區(qū)別是什么苹粟?
- 考點(diǎn): PHP字符串的定義方式及各自區(qū)別
- 延伸: 數(shù)據(jù)類型及常量
- 定義方式: 單引號(hào),雙引號(hào)墨技,heredoc和newdoc(算一種)
- 區(qū)別:?jiǎn)我?hào)不解析變量,不解析轉(zhuǎn)義字符,只能解析單引號(hào)和反斜線本身作烟,變量和變量、變量和字符串砾医、字符串和字符串之間用.連接拿撩。雙引號(hào)可以解析變量,變量可以使用特殊字符和{}包含,可以解析所有的轉(zhuǎn)義字符如蚜,也能用.來連接压恒。單引號(hào)的效率要高于雙引號(hào)。heredoc類似于雙引號(hào)错邦,newdoc類似于單引號(hào),兩者都用來處理大文本探赫。
$str = 'abcde$afg'; // $a 原樣返回
$a =1 ;
$str = "abcdef'{$a}'g"; // abcdef '$a的值' gh
// heredoc
$a = 7;
$str = <<< EoT
safaf
{$a}sdfdas
afsadf
asdf
EoT;
// $a 被解析
echo $str;
// newdoc
$str = <<< 'EoT'
safaf
{$a}sdfdas
afsadf
asdf
EoT;
// $a 不解析
echo $str;
數(shù)據(jù)類型
三大數(shù)據(jù)類型(標(biāo)量,復(fù)合撬呢,特殊)
- 浮點(diǎn)類型 - 不能用于精確的相等的判斷
$a = 0.1;
$b = 0.7;
if ($a+$b == 0.8) { // fasle, 值為0.7999999
echo "yes";
}
echo 'no'; // 答案為 no
- 布爾類型
// false 的7種情況
0, 0.0, '', '0', false, [], null
- 數(shù)組類型
// 超全局?jǐn)?shù)據(jù)
$GLOBALS, $_GET, $_POST, $_REQUEST, $_SESSION, $_COOKIE, $_SERVER, $_FILES, $_ENV
// 注意點(diǎn):$GLOBALS 包含了后面的所有伦吠,$_REQUEST包含了$_GET, $_POST和$_COOKIE,盡量少用$_REQUEST,安全性低.
$_SERVER['SERVER_ADDR'] // 服務(wù)器ip
$_SERVER['SERVER_NAME'] // 服務(wù)器名
$_SERVER['REQUEST_TIME'] // 請(qǐng)求時(shí)間
$_SERVER['QUERY_STRING'] // 路由?后的一串
$_SERVER['HTTP_REFERER'] // 上級(jí)請(qǐng)求頁面魂拦,頁面從那里過來的,如果通過網(wǎng)址直接訪問就是空
$_SERVER['HTTP_USER_AGENT'] // 頭信息中的USER_AGENT
$_SERVER['REMOTE_ADDR'] // 客戶端的IP地址
$_SERVER['REQUEST_URI'] // /index.php
echo $_SERVER['PATH_INFO']; // ...index.php/use/reg?status=1 use/reg
NULL
直接賦值為NULL毛仪, 未定義的變量,unset的變量常量
定義const和define晨另, const更快是語言結(jié)構(gòu)潭千,define是函數(shù),define不能定義類的常量,const可以借尿。常量一經(jīng)定義就不能修改和刪除預(yù)定義常量
__FILE__ // 文件的路徑名和文件的名稱
__LINE__ // 所在行行號(hào)
__DIR__ // 所在目錄
__FUNCTION__ //所在的函數(shù)體的函數(shù)名稱
__CLASS__ // 類名
__TRAIT__ // trait名
__METHOD__ // 類名+方法名
__NAMESPACE__ // 命名空間