问题描述
|
我是否可以将单引号,双引号的Heredoc语法或Nowdoc语法字符串直接放入函数中,这些函数的参数需要使用诸如
strlen(\'string text\')
或strlen(\"some more string text\")
这样的字符串,而不要包含诸如including2ѭ这样的变量?
如果不是为什么?
解决方法
除非函数期望通过引用传递字符串变量,否则您可以这样做:
// \'&\' 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
,是的,您可以使用任何语法创建字符串。
但是请注意,在将Heredoc / nowdoc语法与函数调用一起使用时,请务必小心:字符串的最后一行除标识符外不能包含任何内容:
var_dump(<<<HERE
foo
HERE
);
,是。您可以。您不需要将其存储在变量中