在C你可以繼續一個字符串中的下一行轉義換行符: 是否有可能在PHP中像C一樣在字符串中轉義換行符?
char* p = "hello \
new line.";
(我的C是有點生疏了,這可能是不100%準確)
但是在PHP中的反斜槓正在字面意思是:
$p = "hello \
new line.";
IE反斜槓字符構成字符串的一部分。 在這種情況下,有沒有辦法在PHP中獲得C的行爲?
在C你可以繼續一個字符串中的下一行轉義換行符: 是否有可能在PHP中像C一樣在字符串中轉義換行符?
char* p = "hello \
new line.";
(我的C是有點生疏了,這可能是不100%準確)
但是在PHP中的反斜槓正在字面意思是:
$p = "hello \
new line.";
IE反斜槓字符構成字符串的一部分。 在這種情況下,有沒有辦法在PHP中獲得C的行爲?
有幾種方法在PHP中類似於這樣做,但沒辦法用一個延續終止做到這一點。
對於初學者,您可以在下一行繼續您的字符串,而不使用任何特定的字符。以下在PHP中是有效和合法的。
$foo = 'hello there two line
string';
$foo = 'hello there two line
string';
第二個例子應該是這種方法的缺點之一。除非你保留其他行的正確性,否則你會爲你的字符串增加額外的空格。
第二種方法是使用字符串連接
$foo = 'hell there two line'.
'string';
$foo = 'hell there two line'.
'string';
上述兩個示例將導致在字符串中所創建的相同,換句話說沒有額外的空格。這裏的權衡是你需要執行字符串連接,這不是免費的(儘管使用PHP的可變字符串和現代硬件,在開始注意性能點擊之前,您可以脫離很多級聯)
最後有HEREDOC格式。與第一種選擇類似,HEREDOC也允許您將字符串分成多行。
$foo = <<<TEST
I can go to town between the the start and end TEST modifiers.
Wooooo Hoooo. You can also drop $php_vars anywhere you'd like.
Oh yeah!
TEST;
您將得到與第一個示例相同的領先空白問題,但有些人發現HEREDOC更具可讀性。
在PHP中,你可以簡單地繼續使用字符串的新線。
例如。
<?php
$var = 'this is
some text
in a var';
?>
簡短的回答是,你可以不容易做到在C,你需要或者串連(最佳):
$p = "This is a long".
" non-multiline string";
或之後刪除換行符(可怕的,不爲此):
$p = "This will contain the newlines
before this line";
//for instance str_replace() can remove the newlines
這些都不會阻止添加換行符(除非在提及空格時包含換行符) –
是的,當我提到空格時,我的意思是包含換行符。我主要處理HTML輸出,所以我忘了那些換行符在某些領域是一個大問題。 (注意:連接方法I和其他人提到**會**防止添加換行符。) –
感謝您長時間深思熟慮的回答 – Petruza