Всем привет от уже матерого программиста) Целых 2 недели на Hexlet) За это время уже сдал на проверку первый проект. После окончания проверки уже отпишу свои впечатления о нем.
- 1.Пропуск "$" перед переменной
- 2. Пропуск ";" в конце строки
- 3. В цикле for использовать "," вместо ";".
- 4. Открытие фигурных скобок тела функции на той же строке где и имя функции
- 5. Пробелы в конце строки
А сейчас мои ТОП - 5 глупых ошибок новичков. Все они связаны с синтаксисом, но заставляли очень понервничать при их поиске, может кому-то сбережет чуть времени и нервов)
1.Пропуск "$" перед переменной
Перед php я начинал js, и уже успел привыкнуть что переменные без "$", поэтому таких ошибок я допускал очень много!
Например, объявили функцию
function getIn(data, $keys) {
//some code
}
но пропустили знак "$" перед "data". Эту ошибку можно отловить по следующему выводу в OUTPUT: PHP Parse error: syntax error, unexpected ','
2. Пропуск ";" в конце строки
Например, объявили 2 переменные
$a = 5
$b = 4;
пропустили ";" на первой строке. Эта ошибка выведится в OUTPUT следующим образом:
PHP Parse error: syntax error, unexpected '$b' (T_VARIABLE) in Test.php on line 2
Обратите внимание, что OUTPUT жалуется на 2 строку, будьте внимательны)
3. В цикле for использовать "," вместо ";".
Тоже иногда смотрел номер строки, где ошибка и не понимал, что же там ни так. Например, как НЕ правильно:
for ($i = 0, $i < 100, $i++) {
echo $i;
}
OUTPUT выведет следующее:
PHP Parse error: syntax error, unexpected ')', expecting ';' in /usr/src/app/src/Arrays.php on line 1
Правильно:
for ($i = 0; $i < 100; $i++) {
echo $i;
}
4. Открытие фигурных скобок тела функции на той же строке где и имя функции
Это не ошибка, в принципе, но LINTER будет ругаться, а это значит, что это стилистически не правильно. Пример, как НЕ правильно:
function getIn($data, $keys) {
//some code
}
Ошибка в LINTER: 1 | ERROR | [x] Opening brace should be on a new line
А правильно:
function getIn($data, $keys)
{
//some code
}
5. Пробелы в конце строки
Тоже не ошибка, но стилистически не правильно и LINTER выдаст ошибку. Эти пробелы тяжело увидеть. Но LINTER не спит) Например, как НЕ правильно:
function getIn($data, $keys)
{ //тут пробелы
//some code
}
Ошибка в LINTER: 2 | ERROR | [x] Whitespace found at end of line
Ну и следовательно правильно без этих пробелов.
Конечно это не все ошибки! Но я выделил эти, потому что я их допускаю больше всего, при этом вначале очень долго не мог определить что же значит та или иная ошибка!
Допускайте ошибки, но быстро их определяйте и исправляйте)