有兩種方法把變數替換到字串中——簡單的方法和複雜的方法。
簡單的方法是把變數名稱放在雙引號字串或heredoc中:
$who = 'Kilroy';
$where = 'here';
echo “$who was $where 」;
Kilroy was here
複雜的方法是把要替換的變數用大括號括起來。這種方法可以用於消除歧義或取代數組查找。大括號的經典作用是把變數名稱從周圍的文字分隔出來:
$n = 12;
echo “You are the {$n}th person”;
You are the 12th person
如果沒有大括號的話,PHP就會嘗試印出變數$nth的值。
和一些shell環境不同,在PHP字串中變數不會重複解析,而只處理在雙引號字串中的解析,然後把其結果被當作字串的值:
$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
在用單引號括起來的字串中唯一可用的轉義序列是'(把單引號放在用單引號括起來的字串中)、\(把一個反斜線放在用單引號括起來的字串中)。任何其他的反斜線只能解釋為一個反斜線:
$name = 'Tim O'Reilly'; //轉義的單引號
echo $name;
$path = ' C:\WINDOWS'; //轉義的反斜線
echo $path;
$nope = 'n'; // 不是轉義序列
echo $nope;
Tim O' Reilly
C:WINDOWS
n
4.1.3 用雙引號括起來的字串
Double-Quoted Strings
用雙引號起來的字串將會進行變數解析並且允許使用許多轉義序列。表4-1列出了在用雙引號括起來的字串中PHP認可的轉義序列。
表4-1:用雙引號括起來的字串中的轉義序列
轉義序列字元意義
」
雙引號
n
換行
r
回車
t
製表符
\
反斜線
$
美元符號
{
左大括號
}
右大括號
[
左中括號
]
右中括號
如果你在一個更複雜的表達式中使用heredoc,你需要將表達式分行來寫:
printf(%s is %d years old.
Template
, 「Fred」, 35);
在heredoc中的單引號和雙引號被跳過(當作一般的符號):
$dialogue = 「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. eyebrow. “Want to bet?”
在heredoc中的空白符也被保留:
$ws = boo
hoo
Enough;
// $ ws = ” boon hoon”;
因為在結尾終止符前的換行符將被移除,所以下面這兩個賦值是相同的:
$s = 'Foo';
// same as 和下面的相同
$s = Foo
End_of_pointless_heredoc;
如果想用一個換行符來結束heredoc引用的字串,則需要自己額外加入:
$s = Foo
End;
//注意Foo後面跟一空行,不可刪除
以上就介紹了變數定義 PHP 變數定義和變數替換的方法,包括了變數定義方面的內容,希望對PHP教程有興趣的朋友有所幫助。