2011-05-24 41 views
2

我是否允許將單引號,雙引號heredoc語法或nowdoc語法字符串直接放入其參數需要字符串的函數中,例如strlen('string text')strlen("some more string text")而不是包含變量,例如strlen($str);我可以將單引號,雙引號heredoc語法或nowdoc語法字符串直接放入使用字符串的函數參數嗎?

如果不是爲什麼?

+0

你試過嗎? – KingCrunch 2011-05-24 08:13:46

+0

我試過了nowdoc和herdoc但沒有成功。 – sneak 2011-05-24 08:16:28

+0

heredoc沒有問題,雖然它有點棘手(不可讀),也就是說,如果你用'<<< STRING'開始它,你不能用'STRING);'或'STRING,$ otherParam '。您在'STRING'之前也不能有空間。看到寂寞的例子,它按預期工作。 – binaryLV 2011-05-24 08:37:33

回答

0

是的。您可以。您不需要將其存儲在變量中

1

是的,您可以使用任何語法來創建字符串。

但是請注意,你必須使用與功能定界符/ nowdoc語法時要小心電話:字符串的最後一行不能包含任何東西,除了標識:

var_dump(<<<HERE 
foo 
HERE 
); 
3

你被允許這樣做,除非函數期望字符串變量通過引用傳遞:

// '&' 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 
相關問題