Я работаю над небольшим проектом на PHP с использованием Eclipe PDT.
Я теряю много времени, потому что ошибки при вводе не приводят ни к ошибкам, ни к предупреждениям во время редактирования.Это означает, что я получаю ошибки во время выполнения (легко) или нет (трудно отлаживать).
Я хотел бы привести несколько примеров:
Ошибка при вызове функции
$ret = $this->getListOfUniqueNames();
Печатаниевызов, подобный этому, вряд ли приведет к какой-либо ошибке, потому что здесь помогает помощь по содержимому.
История меняется, если вы используете классы с интерфейсами, где помощь по содержимому не всегда доступна.
Пример 1:() отсутствует
$s = $this->mDataClass->getSchedule;
В этом звонке я забыл ().PHP не вызывает ошибку редактирования или неопределенную константу, поэтому эта ошибка возникает во время выполнения.
Пример 2: неопределенная функция
$s = $this->mDataClass->getSchedule();
Это вызов неопределенной функции.Это должен был быть getScheduleList ().
Пример 3: неопределенная переменная
$this-mVarTypingError = "abc";
Это фактически создает новую переменную в расширенном подклассе.Может быть предотвращено с помощью __set в верхнем классе, но я не думаю, что это хорошая практика - создавать код для предотвращения ошибок при наборе.
Я не мог понять, будет ли
declare(strict_types = 1);
полезным.
Итак, мой вопрос: что я могу сделать, чтобы предотвратить такие ошибки при печати, которые выявляются в Java во время компиляции?Я скорее определяю все свои переменные, затем ищу ошибки, потому что я этого не сделал.