php如何實現(xiàn)變量替換的方法-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)php如何實現(xiàn)變量替換的方法的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

10年積累的成都網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有營山免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

php變量替換的實現(xiàn)方法:1、把變量名放在雙引號字符串或heredoc中;2、把要替換的變量用大括號括起來,用于消除歧義或替換數(shù)組查找即可。

PHP 變量定義和變量替換的方法

當(dāng)用雙引號或heredoc定義字符串直接量時,字符串服從變量替換(variable interpolation)規(guī)則。替換即在字符串中用變量的值來替換變量名,也就是說在字符串中會自動進行變量解析。

有兩種方法把變量替換到字符串中——簡單的方法和復(fù)雜的方法。

簡單的方法是把變量名放在雙引號字符串或heredoc中:

$who = ‘Kilroy';
$where = ‘here';
echo “$who was $where”;
Kilroy was here

復(fù)雜的方法是把要替換的變量用大括號括起來。這種方法可以用于消除歧義或替換數(shù)組查找。大括號的經(jīng)典作用是把變量名從周圍的文本中分隔出來:

$n = 12;
echo “You are the {$n}th person”;
You are the 12th person

如果沒有大括號的話,PHP就會嘗試打印出變量$nth的值。

和一些shell環(huán)境不同,在PHP字符串中變量不會重復(fù)解析,而只處理在雙引號字符串中的解析,然后把其結(jié)果被作為字符串的值:

$bar = ‘this is not printed';
$foo = ‘$bar'; // 單引號
print(”$foo”); //雙引號
$bar

4.1.2 用單引號括起來的字符串

Single-Quoted Strings

用單引號括起來的字符串并不替換變量。因為字符串直接量是用單引號括起來的,所以在下面的字符串中變量名沒有被解析:

$name = ‘Fred';
$str = ‘Hello, $name'; // single-quoted 用單引號括起來
echo $str;
Hello, $name

在用單引號括起來的字符串中可用的轉(zhuǎn)義序列是 \'(把單引號放在用單引號括起來的字符串中)、\\(把一個反斜杠放在用單引號括起來的字符串中)。任何其他的反斜杠只能被解釋為一個反斜杠:

$name = ‘Tim O\'Reilly'; //轉(zhuǎn)義的單引號
echo $name;
$path = ‘C:\\WINDOWS'; //轉(zhuǎn)義的反斜杠
echo $path;
$nope = ‘\n'; // 不是轉(zhuǎn)義序列
echo $nope;
Tim O'Reilly
C:\WINDOWS

4.1.3 用雙引號括起來的字符串

Double-Quoted Strings

用雙引號括起來的字符串將會進行變量解析并且允許使用許多轉(zhuǎn)義序列。表4-1列出了在用雙引號括起來的字符串中PHP認可的轉(zhuǎn)義序列。

表4-1:用雙引號括起來的字符串中的轉(zhuǎn)義序列

轉(zhuǎn)義序列 字符含義
\”
雙引號
\n
換行
\r
回車
\t
制表符
\\
反斜杠
\$
美元符號
\{
左大括號
\}
右大括號
\[
左中括號
\]
右中括號
\0 through \777
用八進制表示的ASCII字符
\x0 through \xFF

用十六進制表示的ASCII字符

如果在用雙引號括起來的字符串中發(fā)現(xiàn)一個未知的轉(zhuǎn)義序列(例如,一個反斜杠后跟一個不在表4-1中的字符),就忽略這個轉(zhuǎn)義序列(如果警告級設(shè)置為E_NOTICE,就會為這樣的未知序列產(chǎn)生一個警告):

$str = “What is \c this?”; // 未知的轉(zhuǎn)義序列
echo $str ;
What is \c this?

4.1.4 字符串定界

Here Documents heredoc

使用heredoc可以簡單地把多行字符串放在程序中,如下所示:

$clerihew = <<< End_Of_Quote
Sir Humphrey Davy
Abominated gravy.
He lived in the odium
Of having discovered sodium.
End_Of_Quote;
echo $clerihew;
Sir Humphrey Davy
Abominated gravy.
He lived in the odium
Of having discovered sodium.

<<<符號(我們習(xí)慣稱為字符串定界符――譯者注)告訴PHP解析器你正在書寫一個heredoc。在<<<符號和標(biāo)識符(本例中即 End_Of_Quote)之間必須有一個空格,這樣程序才可以辨別標(biāo)識符。從下一行開始就是被引用的文本,直到它遇到僅由標(biāo)識符組成的一行為止。

你可以把分號放在終止標(biāo)識符的后面來結(jié)束語句,正如前面的代碼所示。如果你在一個更復(fù)雜的表達式中使用heredoc,你需要將表達式分行來寫:

printf(<<< Template
%s is %d years old.
Template
, “Fred”, 35);

在heredoc中的單引號和雙引號被跳過(當(dāng)作一般的符號):

$dialogue = <<< No_More
“It's not going to happen!” she fumed.
He raised an eyebrow. “Want to bet?”
No_More;
echo $dialogue;
“It's not going to happen!” she fumed.
He raised an eyebrow. “Want to bet?”

在heredoc中的空白符也被保留:

$ws = <<< Enough
boo
hoo
Enough;
// $ws = ” boo\n hoo\n”;

因為在結(jié)尾終止符前的換行符將被移除,所以下面這兩個賦值是相同的:

$s = ‘Foo';
// same as 和下面的相同
$s = <<< End_of_pointless_heredoc
Foo
End_of_pointless_heredoc;

如果想用一個換行符來結(jié)束heredoc引用的字符串,則需要自己額外加入:

$s = <<< End
Foo
End;
//注意Foo后面跟一個空行,不可刪除

感謝各位的閱讀!關(guān)于php如何實現(xiàn)變量替換的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

當(dāng)前文章:php如何實現(xiàn)變量替換的方法-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://bm7419.com/article18/dgdsdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、域名注冊網(wǎng)站設(shè)計、定制網(wǎng)站、手機網(wǎng)站建設(shè)、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計