语法'%s'和'%d'是什么意思是调用变量的简写?

时间:2011-07-28 21:07:01

标签: php oop

此示例中'%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指的是哪个变量?它是否按成员变量的声明顺序排列?

3 个答案:

答案 0 :(得分:11)

它们是格式说明符,意味着指定类型的变量将插入到该位置的输出中。此语法也适用于类之外。

来自文档:

  

d - 将参数视为整数,并显示为(带符号)   十进制数。

     

s - 将参数视为字符串并以字符串形式显示。

请参阅manual on printf。有关格式说明符的列表,请参阅here

答案 1 :(得分:1)

这是printf方法的一部分。这些是后续变量的占位符。 %d表示将其视为数字。 %s表示将其视为字符串。

函数调用中的变量列表按照它们在前面的字符串中显示的顺序使用。

答案 2 :(得分:1)

%s表示格式为“字符串”,并替换为$this->number_of_floors

中的值

%d表示格式为“整数”,并被$this->color

中的值替换

printf是一个“经典”函数,已经存在了一段时间,并以许多编程语言实现。

http://en.wikipedia.org/wiki/Printf