echo — конструкция PHP не отображает переменные

Я новичок в PHP, так что до сих пор понимаю, как работают конструкции, и я был бы признателен за помощь!

Следующий код не может отобразить переменные $ прибывающее время и $ часовое время:

class Variable {

public $arrivalTime;
public $hourStay;

public function __construct() {
$this->arrivalTime = $_POST['arrivalTime'];
$this->hourStay = $_POST['hourStay'];

echo $this->arrivalTime;
echo $this->hourStay;
}
}

2

Решение

Вам нужно создать экземпляр класса, позвонив new Variable() где-то в вашем коде. Тем не менее, в общем случае лучше, чтобы ваш класс не зависел от переменных post, а передавал их через конструктор:

class Variable {

public $arrivalTime;
public $hourStay;

public function __construct($arrivalTime, $hourStay) {
// TODO: Check if the values are valid, e.g.
// $arrivalTime is a time in the future
// and $hourStay is an integer value > 0.
$this->arrivalTime = $arrivalTime;
$this->hourStay = $hourStay;
}

public function print() {
echo $this->arrivalTime;
echo $this->hourStay;
}
}

$var = new Variable($_POST['arrivalTime'], $_POST['hourStay']);
$var->print();

Также обратите внимание, как я убрал генерацию вывода из конструктора. Его единственная задача должна состоять в том, чтобы инициализировать объект в допустимое состояние. Обработка ввода или генерация вывода не входит в его обязанности.

2

Другие решения

Других решений пока нет …