php中的雙引號(hào)與單引號(hào)的基本使用及區(qū)別
字符串,在各類編程語(yǔ)言中都是一個(gè)非常重要的數(shù)據(jù)類型
網(wǎng)頁(yè)當(dāng)中的圖片,文字,特殊符號(hào),HTMl標(biāo)簽,英文等都屬于字符串
PHP字符串變量用于存儲(chǔ)并處理文本, 在創(chuàng)建字符串之后,我們就可以對(duì)它進(jìn)行操作。我們可以直接在函數(shù)中使用字符串,或者把它存儲(chǔ)在變量中
字符串是一個(gè)非常要的知識(shí),在開(kāi)發(fā)中,有的使用單引號(hào),有的使用雙引號(hào),這個(gè)是有區(qū)別的
在PHP語(yǔ)言中聲明字符串有三種方式
用單引號(hào)聲明用雙引號(hào)聲明用字界符聲明(這個(gè)需要輸入非常大段的字符串時(shí)才使用,不常用)1.單引號(hào)聲明用英文半腳的單引號(hào),將字符串包起來(lái),字符串變量用于包含有字符的值
<?php//聲明字符串變量$name$name = '我是川川';echo $name; // 12,一個(gè)中文字符占三個(gè)字節(jié)?>如果你想測(cè)試字符串的長(zhǎng)度,可以使用PHP提供的字符串函數(shù)strlen("字符串"),或strpos(),此函數(shù)用于在字符串內(nèi)查找一個(gè)字符或一段指定的文本。
如果在字符串中找到匹配,該函數(shù)會(huì)返回第一個(gè)匹配的字符位置。如果未找到匹配,則返回 false
<?php $name = '我是川川'; echo strlen($name); echo strpos('Hello world!','world'); // 6?>2.雙引號(hào)聲明字符串在字符串兩邊加雙引號(hào)
<?php //聲明字符串變量$str $str = '書(shū)以啟智,技于謀生,活出斜杠。'; echo $str;?>3.字界符聲明1). 在變量后面的等號(hào)寫三個(gè)小于號(hào)(<<<)。2). 然后在<<<后面寫上字符(建議英文大寫字符),如下例中的:ABC3). 然后換行寫上任意想寫的字符 4). 寫完后,頂行。在行最開(kāi)始處,再寫上<<<后面的字符和分號(hào)。如下例中的:ABC
$weilai = '努力才有未來(lái)';$mimang = '迷茫的原因是沒(méi)有目標(biāo)';$dingjie = <<<ABC 如果 $weilai 非要\t在這'' 前 '$mimang' 面<br /> 加上\n一段 <i>距離的話</i> 我想說(shuō):<h1>思想有多遠(yuǎn),你就跟我滾多遠(yuǎn)</h1>ABC;echo $dingjie雙引號(hào)與單引號(hào)有什么區(qū)別雙引號(hào)能解析變量,但是單引號(hào)不解析變量在上引號(hào)里面插入變量,變量后面如果有英文或中文字符,它會(huì)把這個(gè)字符和變量拼接起來(lái),視為一個(gè)整個(gè)變量,一定要在變量后面上拼接字符,例如空格等分開(kāi)如果在雙引號(hào)里面插入變量的時(shí)候,后面不想有空格,可以拿雙大括號(hào)將變量包起來(lái)雙引號(hào)解析轉(zhuǎn)義字符,單引號(hào)不解析轉(zhuǎn)義字符,但單引號(hào)能解析'和\單引號(hào)效率要高于雙引號(hào),可以盡可能使用單引號(hào)雙引號(hào)和單引號(hào)可以互插,雙引號(hào)中插入單引號(hào),單引號(hào)中插入變量,這個(gè)變量會(huì)被解析字符串的拼接,可以用'.'號(hào)連接,拼接(常用)1. 雙引號(hào)解析變量,但是單引號(hào)不解析變量<?php // 聲明變量$name $website = 'https://coder.itclan.net'; $str = '$website,測(cè)試一下這個(gè)變量會(huì)不會(huì)顯示'; echo $str;?>上面的是能夠顯示出結(jié)果的,變量$website能夠被解析 雙引號(hào)中間的變量夠執(zhí)行顯示,我們將$str這個(gè)字符串兩邊的雙引號(hào),改為單引號(hào)試試,再看一次執(zhí)行結(jié)果,結(jié)果發(fā)現(xiàn)
發(fā)現(xiàn)$website 直接顯示出來(lái)了,而不是雙引號(hào)的顯示結(jié)果。
通過(guò)上例,可證明:雙引號(hào)執(zhí)行變量,而單引號(hào)不執(zhí)行變量。我們得到一個(gè)重要結(jié)論
雙引號(hào)需要解析變量,因此雙引號(hào)的效率沒(méi)有單引號(hào)高。我們?nèi)绻麨榱烁叩男?,我們通常使用單引?hào)
2. 在雙引號(hào)里面插入變量在雙引號(hào)里面插入變量,變量后面如果有英文或中文字符,它會(huì)把這個(gè)字符和變量拼接起來(lái),視為一整個(gè)變量??梢栽诤竺娼由咸厥庾址缈崭竦确珠_(kāi)
<?php $php = 'php-開(kāi)始學(xué)php'; $str = '$phpaaaa'; //你會(huì)發(fā)現(xiàn)輸出$str,什么都沒(méi)有在頁(yè)面中顯示 echo $str;?>然而,我們?cè)?str聲明的這個(gè)字符串中將$php后面接個(gè)空格再接aaaa,代碼如下
<?php $php = 'php-開(kāi)始學(xué)php'; $str = '$php aaaa'; //在$php后面添加一個(gè)空格,頁(yè)面卻正常顯示了的 echo $str;?>你在很多項(xiàng)目里,有的會(huì)看到空格的,如果你不小心刪除了空格,那么就會(huì)不顯示
如果你不想要在后面不想要有空格,可以用雙大括號(hào)將變量包裹起來(lái)的,如下代碼所示
<?php $php = 'php-開(kāi)始學(xué)php'; $str = '{$php}aaaa'; //在$php后面添加一個(gè)空格,頁(yè)面卻正常顯示了的 echo $str;?>3. 雙引號(hào)解析轉(zhuǎn)義字符,單引號(hào)不解析轉(zhuǎn)義字符雙引號(hào)解析轉(zhuǎn)義字符,單引號(hào)不解析轉(zhuǎn)義字符,但單引號(hào)能解析`,和\
比如:
<?php // 聲明一個(gè)字符串,記住是雙引號(hào) $string = '好好學(xué)習(xí)\n,天天向上\t,相信自己'; echo $string;?>從瀏覽器輸出結(jié)果當(dāng)中可以看出是有效果的
如果換成單引號(hào),那么情況就變了的
<?php // 聲明一個(gè)字符串,記住是雙引號(hào) $string = '好好學(xué)習(xí)\n,天天向上\t,相信自己'; echo $string;?>你會(huì)發(fā)現(xiàn),單引號(hào)的\t,\n直接就顯示出來(lái)了,而沒(méi)有變成一次回車鍵和按一次的tab鍵后的效果
也就是,雙引號(hào)執(zhí)行轉(zhuǎn)義字符而單引號(hào)不執(zhí)行轉(zhuǎn)義字符
4.轉(zhuǎn)義字符\(反斜線的使用)如果我們聲明一個(gè)變量,我們想要在name聲明的雙引號(hào)中間加上一個(gè)雙引號(hào)顯示輸出怎么辦
<?php //要在$name的字符串中顯示一個(gè)雙引號(hào)怎么辦? $name = '多于絕大多數(shù)的人出生就是杯具,但是'我們?cè)诓粩嗟淖屓松優(yōu)橄矂?; echo $name;?>上述代碼會(huì)報(bào)錯(cuò),雙引號(hào)中間還有一個(gè)雙引號(hào)。也就是意味著字符串聲明提前結(jié)束了
我們需要將雙引號(hào)原有的意義去掉。再雙引號(hào)前面加上一個(gè)```(反斜線,計(jì)算機(jī)的專業(yè)名詞叫轉(zhuǎn)義字符),就可以了
<?php//要在$name的字符串中顯示一個(gè)雙引號(hào)怎么辦?$name = '多于絕大多數(shù)的人出生就是杯具,但是\'我們?cè)诓粩嗟淖屓松優(yōu)橄矂?;echo $name;?>再執(zhí)行一下上面的代碼,發(fā)現(xiàn)不再報(bào)錯(cuò)了。同理可推,單引號(hào)當(dāng)中要插入一個(gè)單引號(hào)顯示出來(lái)的時(shí)候,也可以在單引號(hào)聲明的字符串中的單引號(hào)前面加上(反斜線,轉(zhuǎn)義字符),將單引號(hào)的意義(限定字符區(qū)間)去掉
5. 雙號(hào)和單引號(hào)可以互插雙號(hào)和單引號(hào)可以互插,雙引號(hào)當(dāng)中插入單引號(hào),單引號(hào)當(dāng)中插入變量,這個(gè)變量會(huì)被解析
<?php $legend = '猛虎'; $NoAlike = '心有'$legend',細(xì)嗅薔薇'; echo $NoAlike;?>需要注意的是,雙引號(hào)內(nèi)可以,插入單引號(hào),中有變量,可以被解析,反過(guò)來(lái)則不行,會(huì)報(bào)錯(cuò)
6. 字符串可以用(.)來(lái)拼接如下代碼所示
<?php $php = 'itclanCoder'; //中間加了空格 $str = '{$php}aaaa'; echo $str;?>雙引號(hào)能夠解析變量,有一個(gè)問(wèn)題:
效率沒(méi)有純單引號(hào)的高
那么問(wèn)題1:我想改為效率最高的方式應(yīng)該怎么辦?
問(wèn)題2:我有多個(gè)字符串,要拼接在一聲怎么辦?
那我們需要使用到神奇的膠水:(.)點(diǎn),用來(lái)拼接字符串
<?php$shixi = '大學(xué)4年要好好學(xué)習(xí)<br />';$buran = '不然連實(shí)習(xí)的機(jī)會(huì)都沒(méi)有<br />';$mimang = '把別人用來(lái)迷茫的時(shí)間用來(lái)學(xué)習(xí)<br />';$xuexi = '學(xué)習(xí)PHP<br />';//我們可以把字符串全部拼接起來(lái)。echo $shixi . $buran . $mimang . $xuexi;?>上面的代碼可以更改為
<?php $php = 'itclanCoder'; //中間加了空格 $str = $php . 'aaaa'; echo $str;?>以上就是關(guān)于php當(dāng)中雙引號(hào)與單引號(hào)的使用,在面試的時(shí)候,有時(shí)候也會(huì)問(wèn)到
到此這篇關(guān)于php中的雙引號(hào)與單引號(hào)的基本使用的文章就介紹到這了,更多相關(guān)php雙引號(hào)與單引號(hào)使用內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
