本文目錄一覽:
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-hant/n/137500.html