<?php echo ($i % 6 == 5) ? 'style=\"margin-right:0px\"' : ''; ?>
我剛剛在視圖端口上打印了style =「」。PHP基本串聯問題?
更新: 爲什麼當我們在一個字符串中時不需要雙引號? 因爲雙引號永遠不會被視爲其他任何字符串,如果它們在單引號內?
由於提前, MEM
<?php echo ($i % 6 == 5) ? 'style=\"margin-right:0px\"' : ''; ?>
我剛剛在視圖端口上打印了style =「」。PHP基本串聯問題?
更新: 爲什麼當我們在一個字符串中時不需要雙引號? 因爲雙引號永遠不會被視爲其他任何字符串,如果它們在單引號內?
由於提前, MEM
爲什麼當我們在一個字符串中時不需要雙引號?因爲雙引號永遠不會被視爲其他任何字符串,如果它們在單引號內?
的manual,對於單引號的字符串:
要指定一個單引號,用反斜槓轉義(\)。要指定文字反斜槓,請將其加倍(\\)。 所有其他反斜槓實例將被視爲文字反斜槓:這意味着您可能習慣的其他轉義序列(如\ r或\ n)將按照指定的字面輸出,而不是具有任何特殊含義。
你用單引號'
爲字符串,所以轉義雙引號"
字符串裏面是不必要的。用'style="margin-right:0px"'
代替它,它應該工作得很好。
要解釋PHP如何處理字符串和引號好一點,瞭解'
和"
之間的區別很有幫助。用'
封裝的字符串總是按原樣顯示。字符串內部沒有任何內容會被解析,包括任何轉義字符(例如\n
換行符或轉義引號,除了轉義單引號\'
)。相反,在"
中封裝的字符串會被解析,所以如果您有任何轉義字符,它們將被正確顯示,並且如果字符串中有任何變量,它們也將被輸入。例如,
// Set name variable to my name
$name = "nhinkle";
// Echo hello name with single quotes
echo 'hello {$name}';
// The result will be "hello {$name}"
// Echo hello name with double quotes
echo "hello {$name}";
// The result will be "hello nhinkle"
它需要使用單引號較少的處理能力,因爲PHP不需要掃描串逃避什麼,它只是需要找到字符串的結尾。但是,如果您確實需要解析字符串內的內容,請確保使用雙引號。
在單引號內沒有必要使用雙引號。
<?php echo ($i % 6 == 5) ? 'style="margin-right:0px"' : ''; ?>
您只需要在單引號或雙引號內的雙引號內轉義單引號。如果你想在一個單引號字符串中寫單引號,那麼這個單引號會終止字符串。
$foo = 'a'b';
PHP認爲這是字符串a
,接着是無意義b
和字符串';
其從不終止的開始;這是無效的語法。
$foo = 'a\'b';
這被正確解析爲字符串a'b
。你有轉義的含義此時通常會有報價。
使用雙引號內的雙引號,不存在這樣的歧義。單引號字符串中的雙引號不會終止字符串,它沒有那種需要轉義的特殊含義。如果你包含一個反斜槓,反斜槓將被直接使用。
$foo = 'a"b'; // a"b
$foo = 'a\"b'; // a\"b
我想問題是你如何看待輸出。如果輸出爲style=\"…\"
,則在查看輸出的環境中,轉義的雙引號可能導致語法無效。
我們可以看到更多的代碼嗎?反斜槓並不重要。即使使用斜槓,你也應該看到style = \「margin-right:0px \」not style =「」。 – typeoneerror 2010-11-28 04:27:08
像你一樣有機會有風格=「<?php回聲($ i%6 == 5)?'style = \」margin-right:0px \「':'';?>」 – typeoneerror 2010-11-28 04:27:46
你在哪裏看結果?原始輸出?瀏覽器?瀏覽器的DOM檢查器? – deceze 2010-11-28 04:31:01