PHPのオブジェクト指向についての質問です。
やりたいことは、クラスのメソッドを使って、現在から5日後の日付を日付フォーマットで出力させることです。
日付フォーマットを返すメソッドと、指定日付後の日付フォーマットを返すメソッドを持つDayクラスを作成しました。
コードは以下です。
PHP
1 class Day{ 2 3 public static function ymdString($date){ 4 $fmt = $date->format('y年m月d日'); 5 return $fmt; 6 } 7 8 public static function after($date, $days){ 9 $date->add(new DateInterval("P{$days}D")); 10 return $this->ymdString($date); 11 } 12 13}
引数の$dateはDateTimeクラスのインスタンスである$nowです。
PHP
1$now=new DateTime();
問題はここでDayクラスのメソッドであるafterを使うとエラーになることです。実行コードは以下です。
PHP
1echo Day::after($now, 5);
エラーを読むとafterメソッドにある$thisに問題があるようですが、一つのクラス内で他のメソッドにアクセスしているだけなので何が問題なのかわかりません。
なぜこのコードが誤っているのか理由を教えてください。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー