本文目錄一覽:
PHP語法中 單引號和雙引號的區別
在PHP中,字元串的定義可以使用單引號,也可以使用雙引號。但是必須使用同一種單或雙引號來定義字元串,如:『Hello”和「Hello’為非法的字元串定義。
定義字元串時,只有一種引號被視為定義符,即單引號或雙引號。於是,如果一個字元串由雙引號開始,那麼只有雙引號被分析器解析。這樣,就可以在雙引號串中包含任何其他字元,甚至單引號。下面的引號串都是合法的:
$s = “I am a ‘single quote string’ inside a double quote string”;
$s = ‘I am a “double quote string” inside a single quote string’;
$s = “I am a ‘single quote string’ inside a double quote string”;
$s = ‘I am a “double quote string” inside a single quote string’;
PHP允許我們在雙引號串中直接包含字串變數,單引號串和雙引號串在PHP中的處理是不相同的。雙引號串中的內容可以被解釋而且替換,而單引號串中的內容總被認為是普通字元。例如如下代碼:
$foo = 2;
echo “foo is $foo”; // 列印結果: foo is 2
echo ‘foo is $foo’; // 列印結果: foo is $foo
echo “foo is $foo\n”; // 列印結果: foo is 2 (同時換行)
echo ‘foo is $foo\n’; // 列印結果: foo is $foo\n
$foo = 2;
echo “foo is $foo”; // 列印結果: foo is 2
echo ‘foo is $foo’; // 列印結果: foo is $foo
echo “foo is $foo\n”; // 列印結果: foo is 2 (同時換行)
echo ‘foo is $foo\n’; // 列印結果: foo is $foo\n
在單引號串中甚至反斜杠也失去了他的擴展含義(除了插入反斜杠\\和插入單引號\’)。所以,當想在字串中進行變數代換和包 含\n(換行符)等轉義序列時,應該使用雙引號。單引號串可以用在其他任何地方,腳本中使用單引號串處理速度會更快些,因為PHP語法分析器對單引號串 的處理方式比較單純,而雙引號的處理由於串內部也需要解析,因此更複雜些,所以處理速度略慢。
php 單引號和雙引號的區別
1、變數。雙引號解釋變數,單引號不解釋變數;雙引號里插入單引號,其中單引號里如果有變數的話,變數解釋;
2、字元。雙引號解釋轉義字元,單引號不解釋轉義字元,但是解釋’\和\;
3、效率。能使單引號字元盡量使用單引號,單引號的效率比雙引號要高(因為雙引號要先遍歷一遍,判斷裡面有沒有變數,然後再進行操作,而單引號則不需要判斷)。
擴展資料:
一般情況下兩者是通用的。但雙引號內部變數會解析,而單引號則不解析。
PHP允許我們在雙引號串中直接包含字串變數。
而單引號串中的內容總被認為是普通字元,因此單引號中的內容不會被轉義效率更高。
比如:
$str = ‘hello world’;
echo “str is $str”; //運行結果: str is hello world
echo ‘str is $str’; //運行結果: str is $str
php字元串中的雙引號與單引號區別
php 單引號和雙引號的區別:
雙引號串中的內容可以被解釋而且替換,而單引號串中的內容總被認為是普通字元。
例如:
$foo = 2; echo “foo is $foo”; // 列印結果: foo is 2 echo ‘foo is $foo’; // 列印結果: foo is $foo echo “foo is $foo\n”; // 列印結果: foo is 2 (同時換行) echo ‘foo is $foo\n’; // 列印結果: foo is $foo\n $foo = 2; echo “foo is $foo”; // 列印結果: foo is 2 echo ‘foo is $foo’; // 列印結果: foo is $foo echo “foo is $foo\n”; // 列印結果: foo is 2 (同時換行) echo ‘foo is $foo\n’; // 列印結果: foo is $foo\n
在單引號串中甚至反斜杠也失去了他的擴展含義(除了插入反斜杠\\和插入單引號\’)。所以,當你想在字串中進行變數代換和包 含\n(換行符)等轉義序列時,你應該使用雙引號。單引號串可以用在其他任何地方,腳本中使用單引號串處理速度會更快些。
PHP中單引號與雙引號的區別分析
①轉義的字元不同
單引號和雙引號中都可以使用轉義字元(\),但只能轉義在單引號中引起來的單引號和轉義轉義符本身。如果用雙引號(「」)括起字元串,PHP懂得更多特殊字元串的轉義序列。
?php
$str1
=
‘\’,\\,\r\n\t\v\$\”‘;
echo
$str1,’br
/’;
$str2
=
“\”,\\,a\r\n\tb\v\$\'”;
echo
$str2,’br
/’;
?
②對變數的解析不同
單引號字元串中出現的變數不會被變數值替代。即PHP不會解析單引號中的變數,而是將變數名原樣輸出。雙引號字元串最重要的一點是其中的變數名會被變數值替代,即可以解析雙引號中包含的變數。
?php
$age
=
20;
$str1
=
‘I
am
$age
years
old’;
$str2
=
“I
am
$age
years
old”;
echo
$str1,’br
/’;
//
I
am
$age
years
old
echo
$str2,’br
/’;
//
I
am
20
years
old;
?
③解析速度不同
單引號不需要考慮變數的解析,速度比雙引號快.推薦用單引號.有的時候雙引號也比較好用,比如在拼湊sql
語句
反斜杠
//使用單引號
echo
‘
this
\n
is
\r
the
blog
\t
of
\\
zhoumanhe
\\’;
//上面使用單引號輸出的值是
this
\n
is
\r
the
blog
\t
of
\
zhoumanhe
\
echo
‘
‘;
echo
“
“;
//使用雙引號
echo
“this
\n
is
\r
the
blog
\t
of
\\
zhoumanhe
\\”;
//上面使用雙引號輸出的值是
this
is
the
blog
of
\
zhoumanhe
\
使用sql
假設查詢條件中使用的是常量,例如:
select
*
from
abc_table
where
user_name=’abc’;
SQL語句可以寫成:
SQLstr
=
「select
*
from
abc_table
where
user
_name=
『abc’」
;
假設查詢條件中使用的是變數,例如:
$user_name
=
$_REQUEST[‘user_name’];
//字元串變數
或
$user=array
(」name」=
$_REQUEST[‘user_name『,”age”=$_REQUEST[‘age’];//數組變數
SQL語句就可以寫成:
SQLstr
=
「select
*
from
abc_table
where
user_name
=
『
」
.
$user_name
.
」
『
「;
SQLstr
=
「select
*
from
abc_table
where
user_name
=
『
」
.
$user[“name”]
.
」
『
「;
對比一下:
SQLstr=」select
*
from
abc_table
where
user_name
=
『
abc
『
」
;
SQLstr=」select
*
from
abc_table
where
user_name
=’
」
.
$user
_name
.
」
『
「;
SQLstr=」select
*
from
abc_table
where
user_name
=’
」
.
$user[“name”]
.
」
『
「;
SQLstr可以分解為以下3個部分:
1:」select
*
from
table
where
user_name
=
『
」
//固定SQL語句
2:$user
//變數
3:」
『
」
附:大家也看到了
echo
‘br/’;
html中的標籤在單引號和雙引號中都有效。
總結一下PHP引號使用原則
1.字元串的值用引號
2.PHP中盡量用單引號,HTML代碼全部用雙引號
3.在包含變數的時候,用雙引號可以簡化操作
4.複雜的情況下用大括弧包起來
PHP引號還有一個用處就是,有的時候需要用php生成文本文件,換行符n需要用雙引號才能好使,單引號則會直接把n當成字元輸出。
使用總結:在字元串裡面不需要加入
變數
或者
單引號(‘)和反斜杠(\)
時,盡量用單引號引字元串,因為省去了雙引號檢查處理轉義和解析變數上面的時間。能用單引號盡量用單引號。
PHP中的雙引號和單引號的應用
無論是書寫
JavaScript
還是
PHP,總習慣於使用單引號。但周末在家
coding
的時候碰到個問題,需要通過
PHP
過濾字元串中的換行符,按照下面的方法操作:
$out
=
str_replace(array(‘rn’,
‘r’,
‘n’),
”,
$out);PHP
提供三種定義字元串的方法:單引號、雙引號、本地文檔(英文叫做
here
document
或者
heredoc)。
單引號:
使用單引號是最高效的方法,因為
PHP
不會檢查單引號字元串中的內置變數和轉義序列,需要轉義的字元只有反斜杠和單引號本身。
雙引號:
會檢查內置變數和轉義序列,但不能識別轉義的單引號。這也正說明了開始那段代碼的錯誤之處,正確的做法是使用雙引號來定義換行的轉義序列:
$out
=
str_replace(array(“rn”,
“r”,
“n”),
”,
$out);本地文檔:
檢查所有的內置變數和轉義序列,雙引號無需轉義。例如:
echo
this
is
a
“here
document”
example.
just
for
test.
EOT;簡單記錄下,加深印象。
原創文章,作者:LNUJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137500.html