Я только учусь PHP и у меня есть вопрос.
Вот класс, который я создал
class keens{
public $userid, $codeq, $codetest, $qposition, $ans, $testid, $last, $keencode, $topicid, $datekeencomplete, $datenow;
function __construct() {
$this->userid = $_SESSION['id'];
}
public function keencheck(){
$sql="SELECT MAX(date) FROM `keencomplete` WHERE `topic_id`=$this->topicid";
$run=mysqli_query(DBConnect::$conn, $sql) or die(mysqli_error());
$row=mysqli_fetch_array($run);
$this->datekeencomplete=new DateTime($row[0]);
$this->datenow=new DateTime(null, new DateTimeZone('Asia/Almaty'));
$interval=date_diff($this->datekeencomplete, $this->datenow);
$result=$interval->format('%d');
$check=is_string($result)? 'true':'false';
echo $result;
echo $check;
}
}
Когда я проверяю $ result показывает, что он содержит «2» и является строкой «2true».
Однако, когда я пытаюсь вернуть $ result и использовать его в этом коде
$interval=new keens();
$interval->topicid=1;
$interval->keencheck();
echo $interval;
, я получаю следующая ошибка: Исправимая фатальная ошибка: объект класса keens не может быть преобразован в строку в C: \ xampp \ htdocs \ Ikeen \ views \ v_tests. php в строке 16
в print_r ($ интервал) показывает следующее, это не то, что я возвращаю, верно?
keens Object ( [userid] => 48 [codeq] => [codetest] => [qposition] => [ans] => [testid] => [last] => [keencode] => [topicid] => 1 [datekeencomplete] => DateTime Object ( [date] => 2020-04-17 12:39:51.000000 [timezone_type] => 3 [timezone] => Europe/Berlin ) [datenow] => DateTime Object ( [date] => 2020-04-20 12:32:50.990006 [timezone_type] => 3 [timezone] => Asia/Almaty ) )
Извините, если я сделаю что-то глупое. Есть идеи, почему я не могу получить возвращаемое значение функции в классе?