クラス化することについて、まだ理解できているようで出来ていないことが多かったので質問させていただきます。
1 . index.phpに記載している、インスタンスを"new"したあとの、$cal->setTimeStamp();や$cal->query();のような書き方は、なにを意味しているか教えてください。
(教本にこうやって書くということは記載されていましたが、意味はありませんでした)
(ちなみにnewの意味合いとして、インスタンスを生成するという意味合いで捉えてますが、間違えないでしょうか。)
2 . Calenderクラスのメソッドがたくさんあるため、メンバ変数が乱立してしまいましたが、($~をたくさん記載してしまっていますが)何か問題はありますか?
よろしくお願いします
下記コードは質問内容とマッチしてます。
index.php
PHP
1<?php 2require_once('calender.php'); 3 4$cal = new Calender(); 5// ↓これは一体なにしてるの? 6$cal->setTimeStamp(); 7// ↓これも一体なにしてるの? 8$cal->query(); 9?>
calender.php
PHP
1class Calender extends dbconnect { 2 protected $weeks = array(); 3 protected $timeStamp; 4 protected $task = ''; 5 protected $userData = array(); 6 protected $taskData = array(); 7 8 // mysqli の メソッド 9 public function __construct(){ 10 $dbconnect = new dbconnect(); 11 if ($this->timeStamp === false) { 12 $this->timeStamp = time(); 13 } 14 parent::ConnectDb(); 15 } 16 // 現在の日時取得 (Y-m) 17 public function setTimeStamp(){ 18 $ym = isset($_GET['ym']) ? $_GET['ym'] : date("Y-m"); 19 $this->timeStamp = strtotime($ym . "-01"); 20 if ($this->timeStamp === false){ 21 $this->timeStamp = time(); 22 } 23 } 24 // カレンダー作成 25 public function query() { 26 $lastMonth = date("Y-m-d",strtotime("last day of - 1 month",$this->timeStamp)); 27 $nextMonth = date("Y-m-d",strtotime("first day of + 1 month",$this->timeStamp)); 28 $userData = array(); 29 // PHP->MySQLtable 30 $query = $this->mysqli->query("SELECT * FROM tasks WHERE task_date > '$lastMonth' AND task_date <'$nextMonth'"); 31 if (!$query) { 32 die('クエリーが失敗しました。'.mysql_error()); 33 } 34 while($row = $query->fetch_assoc()) { 35 $userData[date('j',strtotime($row['task_date']))] = array( 36 'id' => $row['id'], 37 'title' => $row['title'], 38 'task_date' => $row['task_date'], 39 'place' => $row['place'], 40 'memo' => $row['memo'], 41 ); 42 } 43}
回答1件
あなたの回答
tips
プレビュー