此示例中'%s'和'%d'的含义是什么?它似乎是调用变量的简写。这种语法只适用于一个类吗?
// Class
class Building {
// Object variables/properties
private $number_of_floors = 5; // These buildings have 5 floors
private $color;
// Class constructor
public function __construct($paint) {
$this->color = $paint;
}
public function describe() {
printf('This building has %d floors. It is %s in color.',
$this->number_of_floors,
$this->color
);
}
}
编辑:令我困惑的部分是编译器如何知道%d指的是哪个变量?它是否按成员变量的声明顺序排列?
答案 0 :(得分:11)
它们是格式说明符,意味着指定类型的变量将插入到该位置的输出中。此语法也适用于类之外。
来自文档:
d - 将参数视为整数,并显示为(带符号) 十进制数。
s - 将参数视为字符串并以字符串形式显示。
请参阅manual on printf。有关格式说明符的列表,请参阅here。
答案 1 :(得分:1)
这是printf方法的一部分。这些是后续变量的占位符。 %d表示将其视为数字。 %s表示将其视为字符串。
函数调用中的变量列表按照它们在前面的字符串中显示的顺序使用。
答案 2 :(得分:1)
%s
表示格式为“字符串”,并替换为$this->number_of_floors
%d
表示格式为“整数”,并被$this->color
printf是一个“经典”函数,已经存在了一段时间,并以许多编程语言实现。