2011-07-28 9 views
4

この例では、 '%s'と '%d'はどういう意味ですか?これは、変数を呼び出すための省略表現です。この構文はクラス内でのみ機能しますか?変数 '%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 
     ); 
    } 
} 

EDIT:私に混乱した部分は、コンパイラは変数%dはを参照しているかを知るんですか?メンバー変数が宣言された順に並んでいますか?

+2

マニュアルは非常によく、このすべてを説明する。.. http://php.net/sprintfを参照してください。 –

答えて

7

これらは書式指定子です。指定された型の変数がその位置の出力に挿入されることを意味します。この構文は、クラス外でも動作します。 - 引数を整数として扱い、 進数(符号付き)として提示される

D:ドキュメントから

s - 引数は、文字列として扱われ、文字列として表されます。

manual on printfを参照してください。書式指定子のリストについては、hereを参照してください。

1

これはprintfメソッドの一部です。これらは、続く変数のプレースホルダです。 %dは数値として扱います。 %sは文字列として扱うことを意味します。

関数呼び出しで続く変数のリストは、前の文字列に表示される順序で使用されます。

1

%sは、「文字列」としての形式を意味し、$this->number_of_floors

%dの値に置き換えられ、「整数」などの形式を意味し、$this->color

printf関数の値によって置き換えられている「クラシック」であります多くのプログラミング言語で実装されています。

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

関連する問題