%S 在 PHP、HTML 或 XML 中是什么意思?

2022-08-30 12:52:12

我正在看Webmonkey的PHP和MySql教程,第2课。我认为这是一个php字面意思。这是什么意思?它位于函数内部,至少在前几个代码块中循环。%sprint_f()

printf("<tr><td>%s %s</td><td>%s</td></tr>n", ...


答案 1

带有 printf 或 sprintf 字符的 % 符号是占位符(或标记)。它们将被作为参数传递的变量替换。

例:

$str1 = 'best';
$str2 = 'world';

$say = sprintf('Tivie is the %s in the %s!', $str1, $str2);
echo $say;

这将输出:

蒂维是世界上最好的!

注意:还有更多占位符(%s 表示字符串,%d 表示 dec 数字等)


次序:

传递参数的顺序计数。如果将 $str 1 与 $str 2 切换为

$say = sprintf('Tivie is the %s in the %s!', $str2, $str1); 

它将打印

“蒂维是世界上最好的!”

但是,您可以更改参数的读取顺序,如下所示:

$say = sprintf('Tivie is the %2$s in the %1$s!', $str2, $str1);

这将正确打印句子。


另外,请记住,PHP是一种动态语言,不需要(或支持)显式类型定义。这意味着它可以根据需要处理变量类型。在sprint中,这意味着如果您传递一个“字符串”作为数字占位符(%d)的参数,则该字符串将被转换为数字(int,float...),这可能会产生奇怪的结果。下面是一个示例:

$onevar = 2;
$anothervar = 'pocket';
$say = sprintf('I have %d chocolate(s) in my %d.', $onevar, $anothervar);
echo $say;

这将打印

我的0中有2块巧克力。

更多阅读信息 在 PHPdocs


答案 2

In 是将插入到字符串中的数据的占位符。的额外参数是要插入的值。它们在位置上与占位符相关联:第一个占位符获取第一个值,第二个占位符获取第二个值,依此类推。printf%sprintf


推荐