php雙引號變數
1. 淺談php中單引號和雙引號到底有啥區別呢
在PHP中,字元串的定義可以使用英文單引號'
',也可以使用英文雙引號"
"。
但是必須使用同一種單或雙引號來定義字元串,如:'Hello
World"和"Hello
World'為非法的字元串定義。
單引號和雙引號到底有啥區別呢?
PHP允許我們在雙引號串中直接包含字串變數。
而單引號串中的內容總被認為是普通字元,因此單引號中的內容不會被轉義效率更高。
比如:
復制代碼
代碼如下:
$str='hello';
echo
"str
is
$str";
//運行結果:
str
is
hello
echo
'str
is
$str';
//運行結果:
str
is
$str
php中,雙引號中的變數($var)和特殊字元(\r\n之類)會被轉義,單引號中的內容不會被轉義(所以效率更高)。
使用上的話,
我以前很喜歡在sql字元串里這樣寫$sql
=
"SELECT
*
FROM
table
WHERE
id
=
$id",這樣裡面的$id可以被轉義,單引號就不行。
在JavaScript中
單引號
和雙引號沒有區別,只要成對使用就行。
我在JavaScript
中使用單引號大多是因為
Javascript
和
HTML
打交道比較多,輸出
HTML
片段的時候不需要轉義
HTML
中屬性的引號。
總之,看實際情況來用啦,怎麼方便怎麼使用。
以上就是本文關於php中單雙引號的區別分析了,希望大家能夠喜歡
2. 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當成字元輸出。
使用總結:在字元串裡面不需要加入
變數
或者
單引號(')和反斜杠(\)
時,盡量用單引號引字元串,因為省去了雙引號檢查處理轉義和解析變數上面的時間。能用單引號盡量用單引號。
3. 單引號和雙引號在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語法分析器對單引號串 的處理方式比較單純,而雙引號的處理由於串內部也需要解析,因此更復雜些,所以處理速度略慢。 技術問題可到itjob技術交流群交流
4. php 的單引號和雙引號的用法
$test1 = "PHP";
1:echo "互聯網最流行的技術$test1" //輸出 互聯網最流行的技術PHP
2:echo '互聯網最流行的技術$test1' //輸出 互聯網最流行的技術$test1
上面兩個例子說明,雙引號裡面的變數,會當作變數解釋,單引號裡面的變數會直接當作字元串來處理,就是說,在單引號裡面的變數會失去其變數的性質,變成一個字元串。
如果想用第一句的方法輸入第二句的結果,加轉義符號啊
3:echo "互聯網最流行的技術\$test1" //輸出 互聯網最流行的技術$test1
4:echo "互聯網最流行的技術$test1技術" //本來是想輸出 互聯網最流行的技術PHP技術,但是你發現,告訴你,找不到變數$test1技術,因為沒有加空格,所以它把後面所有的都當成一個變數了。
所以你會發現,很多優秀的作品,都推薦使用''單引號來寫變數,除非裡面是SQL語句。就是防止這類的錯誤。至於為什麼SQL除外,你可以自己想一下!
5. php中,中括弧"[]"里什麼時後用雙引號什麼時候用單引號
說的通俗一點,就是如果在引號內沒有變數的話,還是使用單引號,有利於執行效率!
$a=10;
echo "$a是$a";輸出:10=10
echo '$a=$a'; 輸出:$a=$a
6. php 單雙引號與轉義的問題
在單引號串中反斜線失去了它的擴展含義(除了添入反斜杠\\和添入單引號\')。所以,當你想在字串中進行變數代換和包含\n(換行符)等轉義序列時,你應該使用雙引號。
所以單引號不會轉義,\\只是添加了一個\,這個類似\' 添加了一個單引號。
7. php 單引號和雙引號的區別
兩者的區喊侍悄別如下:
1、變數上的區鄭渣別
雙引號能解釋變數,談前單引號不能解釋變數。 單引號插入雙引號中,如果單引號中包含變數,則變數解釋。
2、效率上的區別
單引號比雙問號更有效,因為首先需要遍歷雙引號以確定其中是否有變數,然後執行操作,並且不需要判斷單引號。
3、字元上的區別
雙引號解釋轉義符,單引號不解釋轉義符,而是解釋'和。