实例一:这是正确的
<?php
$num = 5;
$location = 'tree';
$format = 'The %2$s contains %1$d monkeys';
echo sprintf($format, $num, $location)
?>
实例二:为什么这是错误的
<?php
$num = 5;
$location = 'tree';
$format = "The %2$s contains %1$d monkeys";
echo sprintf($format, $num, $location)
?>
众所周知$符在php中是变量标识符,而php会解析双引号字符串中的"$"符号作为变量处理,而不会解析单引号字符串中的。
所以例2中字符串中的$s、$d,php当做变量来转换了,但是上文没有定义过$s、$d,于是报错。
lz可以试一下下面2个例子帮助理解: