一、引號定義字串
1.在普通字串的定義上單引號和雙引號的效果相同
如:'i am a string in single quotes'
"i am a string in double quotes"
2.混合使用時以以哪種開頭,就以哪種結尾
如:$s = "i am a 'single quote string' inside a double quote string";
$s = 'i am a "double quote string" inside a single quote string';
3.使用案例解析
"why doesn't "this" work?"
解析:實際上被php語法分析器分成三個部分:
"why doesn't "——包含乙個單引號的雙引號串
this——多餘的字元,分析器無法處理
" work?" ——普通字串
4.引號中轉義字元的使用,針對於特殊字串
如:$file = "c:\windows\system.ini";
echo $file; // 列印結果為: c:windowssystem.ini
$file = "c:\\windows\\system.ini";
echo $file; // 列印結果為: c:\windows\system.ini
5.另一種字串定義方式,能夠消除特殊字元的煩惱,便於引用較長的文字。
(1) 該字串定義方法:
以《符號緊跟乙個自定義字串開頭,最後一行以該自定義字串結束,並且必須頂格。
(2) 案例
$sql =<<
二、字串的連線
1.字串可以使用字串連線符(.)來連線
如:$first_name = 'charlie';
$last_name = 'brown';
$full_name = $first_name . ' ' . $last_name;
2.在php中寫html**時常用賦值號 (=) 連線符 (.) 可以被簡寫合併為 (.=) 符號來使用
如:$html = '';
$html .= 'number
square
';for ( $i=0 ; $i<10 ; $i++)
$html .= '';
三、在字串中使用變數
1.在字串中使用變數可以直接使用變數,或將變數放在雙引號中,卻不能是單引號中
如 $this->conn_string = "$this->host" . ' ' . "$this->port" . ' ' . "$this->dbname" . ' ' . "$this->login"; //right
$this->conn_string = $this->host . ' ' . $this->port . ' ' . $this->dbname . ' ' . $this->login; //right
$this->conn_string = '$this->host' . ' ' . '$this->port' . ' ' . '$this->dbname' . ' ' . '$this->login';//wrong
2.在引號中的陣列變數的使用,需用{}括起以便語法分析器識別
如:echo "value = "; // 列印結果 "value = 3"
echo "value = \"; // 列印結果 "value = "
三、斜槓和sql語句
生成html**或sql查詢語句是編寫php程式時經常遇到而且是件有趣的事情。為什麼這麼說呢,
因為這涉及到生成另外一種型別的**,你必須仔細地考慮和遵循這種**所要求的編寫語法和規
則。我們來看這樣乙個例子,假如你想查詢資料庫中名字是「o'keefe」的使用者,通常sql語句的形式
是這樣的:
select * from users where last_name = 'o\'keefe'
請注意sql語句這個英文所有格(撇號)需使用反斜槓轉義。php專門提供了一些函式來處理這樣
的情況,函式addslashes($str)的用途就是自動在字串中對引號字元插入反斜槓轉義符:
$last_name = "o'keefe";
$sql = "select * from users where last_name = '" . addslashes($last_name) . "'";
在這個例子中,你還要在last_name字串外面括上單引號(sql語法要求),由於這裡使用的是雙
引號串,所以對這對單引號就無須使用轉義了。下面的這個語句是使用單引號串的等價形式:
$sql = 'select * from users where last_name = \'' . addslashes($last_name) . '\'';
任何時候你要在資料庫中寫入字串,你都必須確保裡面的引號正確使用了轉義符號,這是很多php
初學者常犯的錯誤。
四、雙引號和html
與sql語句不同,在標準html語言中雙引號常被用來表示字串(現在很多瀏覽器具備較強的容錯功
能,允許在html中用單引號甚至不用引號表示字串),例如:
$html = ''.$link.'';
$html = "$link";
html語言不支援反斜槓轉義,這一點在我們使用表單的hidden inputs來傳輸資料的時候就會有所
體會了。設定hidden inputs的值的最好辦法,是使用htmlspecialchars()函式來編碼。下面的語句可
以正常傳輸乙個可能包含雙引號的資料:
">
一、 引號定義字串。要達到包含引號的目的, 必須分析器在遇到串內普通引號的時候忽略它的原意,我們在引號的 前面加上乙個反斜槓來告訴php:這個引號是字串的一部分,正確的表示方法是這樣:單引號串可以用在其他任何地方,指令碼中使用單引號串處理速度會更快 些,因為php語法分析器對 單引號串的處理方式比較單純,而雙引號的處理由於串內部也需要解析,因此更複雜些,所以處理速 度略慢。
這個...雙引號轉義,單引號不轉義
如:/r/n是換行,但是如果你用單引號寫入檔案,不會是換行,而是乙個字元,如果用雙引號寫入檔案,就是換行.
同意。
PHP單引號和雙引號的使用
之前剛開始學 php 時,自以為有那麼一點 c c 基礎,對一些基礎內容就只是大略看了下,後來做專案時,才發現基礎是很重要的,有時候一些小小的問題也要花你好長的時間,原因就是基礎沒打好。最近打算把 php 重新看一遍,鞏固下基礎內容。單引號的作用就是包涵一段字串,解析字串時變數和轉義序列都不會被解析...
PHP中的魔術引號
魔術引號 magic quote 是乙個自動將進入 php 指令碼的資料進行轉義的過程。最好在編碼時不要轉義而在執行時根據需要而轉義。當開啟時,所有的 單引號 雙引號 反斜線 和 null 字元都會被自動加上乙個反斜線進行轉義。這和 b addslashes b 作用完全相同。轉義魔術引號的函式 b...
PHP中的魔術引號
魔術引號 magic quote 是乙個自動將進入 php 指令碼的資料進行轉義的過程。什麼是魔術引號 當開啟時,所有的 單引號 雙引號 反斜線 都會被自動加上乙個反斜線進行轉義。這和addslashes 作用完全相同。三個魔術引號指令 1.magic quotes gpc 影響到 http 請求資...