Точка с запятой в конце if, for и других

Прохожу курс PHP и вижу, что где-то точка с запятой есть, а где-то нет.
Например
if ($discount > 0) {
$price_with_discount = $price - $discount;
}

if ($discount > 1400 || $is_last) {
  $product_class = $product_class . ' item-hot';
};

if ($is_new) {
  $product_class = $product_class . ' item-new';
}

Как понять, когда ставить, а когда нет? или дайте ссылку.

Опечатка, скорее всего.
Хорошая отправная точка в этом вопросе - стандарт кодирования PSR: https://www.php-fig.org/psr/psr-12/

Ну тогда там весь курс сплошная опечатка. Где-то есть, а где-то нет.
По ссылке вот так говорят: " Declare statements MUST contain no spaces and MUST be exactly declare(strict_types=1) (with an optional semi-colon terminator)."
Типа необязательно?

Стоит понимать, что любой стандарт кодирования больше все-таки рекомендация или соглашение, нежели однозначное требование. Конкретно в этом курсе что-то может быть опечаткой, а что-то “умышленно” написано так, как есть - согласно представлению автора курса об оформлении кода, привычек, чувства прекрасного etc.

Я не php-разработчик, но мои коллеги php-разработчики пишут код согласно рекомендациям PSR-12, но вряд ли это повсеместное явление.