我是否允许将单引号,双引号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