2011-05-24 61 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 
相关问题