オブジェクト指向の勉強をしています。
PHPのマニュアルに以下のコードがありました。
PHP
1 2$date = new DateTime('2000-01-01'); 3$date->add(new DateInterval('P10D')); 4echo $date->format('Y-m-d') . "\n"; 5
出力結果。
2000-01-11
このコードの認識が以下で正しいか教えてください。
1行目:
Datetimeクラスのインスタンスを生成し$dateに代入。引数の('2000-01-01')は
DateTimeクラスのコンストラクタ(DateTime::__construct)に渡している。
2行目:
$dateオブジェクトのaddメソッドを実行。addメソッドは引数にDateIntervalクラス
のインスタンスしか受け付けないので、ここでnew DateIntervalとしてDateInterval
クラスのインスタンスを生成して、引数としてaddに渡している。
('P10D')はDateIntervalオブジェクトのコンストラクタに引数として渡される。
3行目:
$dateオブジェクトのformatメソッドを実行し、それをechoしている。
疑問点
(1) インスタンスを生成するときに引数がある場合は、その引数はオブジェクトの
コンストラクタに渡されるということで正しいでしょうか?
(2) 2行目のnew DateInterval('P10D')では、ここで生成されたインスタンスを
変数に代入していませんがこの状態でもインスタンスとして使えるのでしょうか?
(3) またDateInterval::formatのマニュアルによると、Dは
「日、数値、先頭に 0 を含む 2 桁」を意味するようですが、('P10D')のPは何なのでしょうか?なぜインターバルに設定したい数値をPとDで囲うのでしょうか?
大変細かくて申し訳ありませんが、私の理解を助けていただければ嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。