我是否允許將單引號,雙引號heredoc語法或nowdoc語法字符串直接放入其參數需要字符串的函數中,例如strlen('string text')
或strlen("some more string text")
而不是包含變量,例如strlen($str);
?我可以將單引號,雙引號heredoc語法或nowdoc語法字符串直接放入使用字符串的函數參數嗎?
如果不是爲什麼?
我是否允許將單引號,雙引號heredoc語法或nowdoc語法字符串直接放入其參數需要字符串的函數中,例如strlen('string text')
或strlen("some more string text")
而不是包含變量,例如strlen($str);
?我可以將單引號,雙引號heredoc語法或nowdoc語法字符串直接放入使用字符串的函數參數嗎?
如果不是爲什麼?
是的。您可以。您不需要將其存儲在變量中
是的,您可以使用任何語法來創建字符串。
但是請注意,你必須使用與功能定界符/ nowdoc語法時要小心電話:字符串的最後一行不能包含任何東西,除了標識:
var_dump(<<<HERE
foo
HERE
);
你被允許這樣做,除非函數期望字符串變量通過引用傳遞:
// '&' means that argument is passed by reference
function requestStringAsVariable(&$str) {
$str = '*' . $str . '*';
}
$str = 'test';
requestStringAsVariable($str);
echo $str; // outputs '*test*';
requestStringAsVariable('foo'); // won't work, as function expects variable
你試過嗎? – KingCrunch 2011-05-24 08:13:46
我試過了nowdoc和herdoc但沒有成功。 – sneak 2011-05-24 08:16:28
heredoc沒有問題,雖然它有點棘手(不可讀),也就是說,如果你用'<<< STRING'開始它,你不能用'STRING);'或'STRING,$ otherParam '。您在'STRING'之前也不能有空間。看到寂寞的例子,它按預期工作。 – binaryLV 2011-05-24 08:37:33