php - sprintf 参数交换和 HEREDOC

标签 php printf heredoc nowdoc

我正在尝试以这种方式在 heredoc 上使用 sprintf。它不会工作。知道如何解决这个问题吗?

$i = <<<EOD
This is your invoice for %1$s %1$s %1$s %1$s
EOD;

$year = '2013';

$i = sprintf($i,$year);

echo $i;

Notice: Undefined variable: s in

最佳答案

因为 HEREDOC 就像一个双引号字符串,PHP 试图将 $s 作为变量插入。尝试 NOWDOC相反

$i = <<<'EOD'
This is your invoice for %1$s %1$s %1$s %1$s
EOD;

关于php - sprintf 参数交换和 HEREDOC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698602/

相关文章:

php - 不在对象上下文 php 中时使用 $this

php - 使用 imagick 使用 PHP 将 PDF 转换为 JPG 适用于平面 pdf,但在有多个图层时失败

java - 一个非常简单的 java 程序出现问题,无法显示正确的结果

c - 检测 Visual C++ 中存在哪个版本的 vswprintf()

printing - PHP 语法错误 T_ENCAPSED_AND_WHITESPACE

php - 如何创建搜索,对搜索引擎友好(mod_rewrite htaccess)

javascript - 如何让用户隐藏 html 表中的行

c - 为什么在 printf 格式字符串中使用 %8.8 而不是 %08?

mysql - 使用 ENDSSH heredoc 为 SSH MySQL 登录创建别名

bash - 在 bash 中将多个逐字逐行输入到命令中