Синтаксис, операторы и пунктуация в PHP
Перед чтением: Операторы — общие понятия оператора, операнда, приоритетов и типов операций без привязки к языку. Названия символов: Знаки препинания и символы в IT.
Знаки препинания, операторы и синтаксические символы в PHP
Play ITЗагрузка интерактивного демо…
Зачем это изучать в начале
Этот раздел часто воспринимают как "формальности", но именно на синтаксисе обычно ломается ранняя практика:
- пропущенная
;останавливает выполнение файла; - перепутанные
"и'меняют итоговые строки; - смешивание
andи&&даёт неожиданный результат из-за приоритета; - неверное использование
??,?:и? :приводит к логическим ошибкам.
Поэтому цель статьи не просто перечислить символы, а дать рабочие привычки чтения и написания PHP-кода.
Обзор синтаксических элементов
Знаки препинания и специальные символы образуют основу синтаксиса PHP. Они определяют структуру кода, разделяют инструкции, объединяют данные и управляют выполнением программы. Понимание каждого символа позволяет писать чистый и предсказуемый код.
Точка с запятой
Точка с запятой завершает каждую исполняемую инструкцию в PHP. Этот символ сообщает интерпретатору о завершении текущей операции и готовности к следующей.
$name = "Maria";
$age = 28;
echo $name;
calculateTotal();
Разбор:
- Здесь показаны отдельные инструкции, каждая заканчивается
;и исполняется последовательно сверху вниз. $nameи$ageобъявляют переменные с присваиванием строкового и числового значения.echo $name;отправляет значение переменной в выходной поток (в браузер или консоль, в зависимости от режима запуска).calculateTotal();демонстрирует вызов функции без аргументов.- Пример подчёркивает, что отсутствие
;после любой инструкции вызовет синтаксическую ошибку.
Пропуск точки с запятой вызывает синтаксическую ошибку. Исключение составляют последние инструкции в блоках кода, заключённых в фигурные скобки, где точка с запятой не обязательна, но рекомендуется для единообразия.
Запятая
Запятая разделяет элементы в списках — аргументы функций, значения массивов, параметры циклов, свойства объектов.
Код ITЗагрузка примера кода…
Разбор:
- В сигнатуре
createUser($name, $email, $role)запятые разделяют параметры функции. - В массиве
["red", "green", "blue"]запятые разделяют элементы списка. - В
list(...)запятые задают, в какие переменные по порядку распакуются значения массива. - Запятая здесь не выполняет вычисление, а только задаёт структуру данных/аргументов.
- Такой синтаксис встречается повсюду — в массивах, параметрах, аргументах и перечислениях.
Запятая не выполняет вычислений, она служит разделителем синтаксических конструкций.
Точка
Точка выполняет конкатенацию строк. Оператор объединяет два строковых значения в одно.
$greeting = "Hello";
$name = "Alex";
$message = $greeting . ", " . $name . "!"; // Hello, Alex!
Разбор:
- Оператор
.склеивает строковые фрагменты в одну итоговую строку. - Выражение вычисляется слева направо: сначала
$greeting . ", ", затем добавляется$name, потом"!". - Результат сохраняется в
$message, а не выводится автоматически. - Конкатенация полезна, когда строка собирается из нескольких переменных и литералов.
- Для накопления строки по шагам обычно применяют форму
.=(конкатенация с присваиванием).
Точка работает с любыми типами данных, преобразуя их в строки при объединении. Числа, булевы значения и null автоматически приводятся к строковому представлению.
$result = "Score: " . 95; // Score: 95
$status = "Active: " . true; // Active: 1
$empty = "Value: " . null; // Value:
Разбор:
- PHP автоматически приводит нестроковые типы к строке при конкатенации.
- Число
95становится"95", поэтому получаемScore: 95. trueприводится к"1", аfalse— к пустой строке.nullтакже превращается в пустую строку.- Из-за таких преобразований важно явно форматировать значения, если критична точность вывода.
Кавычки
Одинарные кавычки
Одинарные кавычки создают строковые литералы без интерпроляции переменных и без обработки большинства управляющих последовательностей.
$name = 'Peter';
$text = 'Hello, $name'; // Hello, $name
$escaped = 'It\'s a quote'; // It's a quote
Разбор:
- В одинарных кавычках переменные не интерполируются, поэтому
$nameостаётся буквальным текстом. \'экранирует одинарную кавычку внутри строкового литерала.- Такой формат подходит для статичных строк, где не нужен разбор спецпоследовательностей.
- Внутри
'...'почти всё трактуется буквально, кроме\\и\'. - Это снижает риск неожиданной подстановки переменных.
Внутри одинарных кавычек обрабатываются только две последовательности: \\ для обратного слеша и \' для одинарной кавычки.
Двойные кавычки
Двойные кавычки поддерживают интерполяцию переменных и обработку управляющих последовательностей.
$name = "Peter";
$text = "Hello, $name"; // Hello, Peter
// Управляющие последовательности
$newline = "Line 1\nLine 2";
$tab = "Column 1\tColumn 2";
$path = "C:\\xampp\\htdocs";
Разбор:
- В двойных кавычках PHP подставляет значения переменных (
$name) прямо в строку. - Последовательности
\nи\tинтерпретируются как перевод строки и табуляция. \\используется для вывода обратного слеша в путях Windows.- Такой формат удобен для шаблонных строк, но требует аккуратности с экранированием.
- Для сложной подстановки (массивы/выражения) лучше использовать
{...}.
Интерполяция работает с простыми переменными и массивами. Для сложных выражений используются фигурные скобки.
$user = ["name" => "Anna"];
echo "User: $user[name]"; // User: Anna
echo "Name: {$user['name']}"; // Name: Anna
echo "Next year: {$year + 1}"; // требуется фигурная скобка
Разбор:
- Пример показывает интерполяцию массива и выражений внутри двойных кавычек.
- Форма
$user[name]работает, но может быть неочевидной и чувствительной к контексту. - Форма
{$user['name']}более явная и безопасная для чтения. - Для вычислений внутри строки (
{$year + 1}) фигурные скобки обязательны. - Рекомендация: использовать
{...}для всего, что сложнее простой переменной.
Интерполяция переменной в строке:
"<текст> $<переменная> <текст>"
"<текст> {$<выражение>} <текст>"
Апостроф
Апостроф (') в типографском смысле отличается от одинарной кавычки по коду символа. В коде PHP используются только одинарные кавычки с кодом ASCII 39. Типографские апострофы (' или ’) вызывают синтаксическую ошибку.
// Ошибка: используются типографские кавычки
// $text = 'It's wrong';
// Правильно: экранирование или двойные кавычки
$text = 'It\'s correct';
$text = "It's correct";
Разбор:
- В PHP-коде допустимы обычные ASCII-кавычки, а не типографские символы из текстовых редакторов.
- Строка
'It\'s correct'использует экранирование апострофа внутри одинарных кавычек. - Альтернатива
"It's correct"позволяет не экранировать апостроф. - Неправильные кавычки часто появляются после копирования из документов/мессенджеров.
- При странных синтаксических ошибках стоит проверить кодировку и тип кавычек.
Скобки
Круглые скобки
Круглые скобки группируют выражения, определяют приоритет операций, ограничивают аргументы функций и условия в управляющих конструкциях.
// Группировка выражений
$result = (5 + 3) * 2; // 16
// Аргументы функции
calculate((int)$input);
// Условия
if ($age > 18 && ($status === 'active' || $status === 'premium')) {
// доступ разрешён
}
Разбор:
- Круглые скобки явно управляют приоритетом вычисления (
(5 + 3)считается раньше умножения). - В
calculate((int)$input)скобки задают аргумент функции и область приведения типа. - В
if (...)скобки обязательны и содержат булево условие. - Внутренние скобки в условии группируют логическое
или, повышая читаемость. - Такая запись уменьшает риск ошибок из-за неочевидного приоритета операторов.
Вызов функции:
<функция>(<аргумент1>, <аргумент2>, ...);
Объявление функции:
function <имя>(<параметр1>, <параметр2>, ...) {
// тело функции
}
Объявление анонимной функции:
$<имя> = function(<параметры>) { /* тело */ };
Стрелочная функция:
$<имя> = fn(<параметр>) => <выражение>;
Объявление глобальной константы:
define("<ИМЯ>", <значение>);
Использование константы:
<ИМЯ> или constant("<ИМЯ>")
Квадратные скобки
Квадратные скобки обращаются к элементам массивов и строк по индексу, определяют литералы массивов.
// Доступ к элементу массива
$users[0] = "John";
echo $users[0];
// Доступ к символу строки
$word = "hello";
echo $word[1]; // e
// Литерал массива
$items = [10, 20, 30];
$assoc = ["key" => "value"];
Разбор:
$users[0]обращается к элементу индексированного массива по числовому ключу.$word[1]показывает, что к строке тоже можно обращаться как к массиву символов.- Литерал
[10, 20, 30]создаёт обычный индексированный массив. - Литерал
["key" => "value"]создаёт ассоциативный массив с именованными ключами. - Квадратные скобки в PHP используются и для доступа, и для объявления массивов.
Современный синтаксис использует квадратные скобки для всех операций с массивами. Старый синтаксис с array() остаётся поддерживаемым.
Объявление массива (индексированный):
$<имя> = [<элемент1>, <элемент2>, ...];
Объявление ассоциативного массива:
$<имя> = ["<ключ1>" => <значение1>, "<ключ2>" => <значение2>];
Доступ к элементу массива:
$<значение> = $<массив>[<индекс>];
$<значение> = $<массив>["<ключ>"];
Фигурные скобки
Фигурные скобки ограничивают блоки кода в функциях, классах, управляющих конструкциях. Они также используются для интерполяции сложных выражений внутри двойных кавычек.
Код ITЗагрузка примера кода…
Разбор:
- Фигурные скобки ограничивают тело функции, условия и другие блоки управления.
- Внутри блока можно объявлять локальные переменные и выполнять несколько инструкций.
- В строке
{$prices[0] * 1.2}фигурные скобки позволяют вычислить выражение перед выводом. - Без фигурных скобок интерполяция сложных выражений была бы неоднозначной.
- Этот символ одновременно структурирует код и помогает формировать динамический текст.
Комментарии
Комментарии игнорируются интерпретатором и служат для пояснения кода разработчикам.
Однострочные комментарии
Два стиля однострочных комментариев: двойной слеш и символ решётки.
// Расчёт итоговой суммы
$subtotal = $price * $quantity;
# Устаревший стиль, редко используется
$tax = $subtotal * 0.2;
Разбор:
//и#создают однострочные комментарии, которые игнорируются интерпретатором.- Комментарий действует до конца строки и не влияет на выполнение кода.
#поддерживается, но в проектах чаще используют//ради единообразия.- Комментарии полезны для пояснения причины решения, а не повторения очевидной строки.
- Чрезмерные комментарии могут снижать читаемость, поэтому лучше писать коротко и по делу.
Комментарий продолжается до конца строки. Точка с запятой после комментария не требуется.
Однострочный комментарий:
// <комментарий>
Альтернативный однострочный комментарий:
# <комментарий>
Многострочные комментарии
Многострочные комментарии начинаются с /* и заканчиваются */. Они могут занимать несколько строк и встраиваться в середину выражений.
/*
* Функция обработки заказа
* Версия: 2.1
* Автор: Иван Петров
*/
function processOrder($orderId) {
/* временно отключено */ $notify = false;
return execute($orderId);
}
Разбор:
/* ... */оформляет многострочный комментарий для подробных пояснений и документации.- Такой формат часто используют перед функциями/классами для описания назначения и параметров.
- Комментарий
/* временно отключено */может быть встроен прямо в строку кода. - Вложенные многострочные комментарии недопустимы и ломают парсинг.
- Важно закрывать
*/, иначе интерпретатор сочтёт весь оставшийся код комментарием.
Вложенные многострочные комментарии недопустимы и вызывают ошибку синтаксического анализа.
Многострочный комментарий:
/*
<комментарий>
*/
Арифметические операторы
Арифметические операторы выполняют математические вычисления с числовыми значениями.
$a = 10;
$b = 3;
$sum = $a + $b; // 13 сложение
$diff = $a - $b; // 7 вычитание
$product = $a * $b; // 30 умножение
$quotient = $a / $b; // 3.333 деление
$mod = $a % $b; // 1 остаток от деления
$pow = $a ** $b; // 1000 возведение в степень
Разбор:
- Показаны базовые арифметические операторы —
+,-,*,/,%,**. %возвращает остаток от деления и часто используется для проверок кратности./в PHP может вернуть дробный результат, даже если операнды целые.**выполняет возведение в степень (в примере10 ** 3 = 1000).- Все выражения сохраняются в переменные, что упрощает дальнейшую обработку.
Оператор остатка % возвращает остаток после целочисленного деления. Для отрицательных чисел знак результата совпадает со знаком делимого.
Арифметические операции:
$<результат> = $<a> + $<b>;
$<результат> = $<a> - $<b>;
$<результат> = $<a> * $<b>;
$<результат> = $<a> / $<b>;
$<результат> = $<a> % $<b>;
$<результат> = $<a> ** $<b>;
Конкатенация строк:
$<результат> = $<строка1> . $<строка2>;
Операторы присваивания
Оператор присваивания = сохраняет значение справа в переменную слева. Составные операторы объединяют арифметическую операцию с присваиванием.
$x = 5; // простое присваивание
$x += 3; // $x = $x + 3; результат: 8
$x -= 2; // $x = $x - 2; результат: 6
$x *= 4; // $x = $x * 4; результат: 24
$x /= 2; // $x = $x / 2; результат: 12
$x %= 5; // $x = $x % 5; результат: 2
$x **= 3; // $x = $x ** 3; результат: 8
Разбор:
=присваивает значение переменной, а составные формы (+=,*=, и т.д.) сокращают запись.+=эквивалентноx = x + ...,-=—x = x - ..., и так далее.- Такие операторы читаются как "изменить текущую переменную на основе её прошлого значения".
- Они уменьшают шум в коде и снижают шанс ошибиться в повторении имени переменной.
**=объединяет возведение в степень и присваивание за одну операцию.
Оператор присваивания возвращает присвоенное значение, что позволяет строить цепочки присваиваний.
$a = $b = $c = 10; // все три переменные равны 10
Разбор:
- Это цепочка присваиваний: вычисление идёт справа налево.
- Сначала
10присваивается$c, затем результат присваивается$b, потом$a. - Приём удобен для инициализации нескольких переменных одинаковым значением.
- В сложной логике лучше использовать аккуратно, чтобы не ухудшать читаемость.
Составные операторы присваивания:
$<переменная> += <значение>;
$<переменная> -= <значение>;
$<переменная> *= <значение>;
$<переменная> /= <значение>;
$<переменная> %= <значение>;
$<переменная> **= <значение>;
Создание объекта:
$<объект> = new <Класс>(<аргументы>);
Объявление константы класса:
const <ИМЯ> = <значение>;
Операторы сравнения
Операторы сравнения проверяют отношения между значениями и возвращают булев результат.
$a = 5;
$b = "5";
$a == $b; // true равенство с приведением типов
$a === $b; // false строгое равенство без приведения
$a != $b; // false неравенство с приведением
$a !== $b; // true строгое неравенство
$a < $b; // false меньше
$a > $b; // false больше
$a <= $b; // true меньше или равно
$a >= $b; // true больше или равно
Разбор:
==и!=сравнивают с автоприведением типов, поэтому5и"5"считаются равными.===и!==сравнивают и значение, и тип, что делает проверки надёжнее.- Операторы
<,>,<=,>=выполняют порядковое сравнение. - В реальных проверках условий лучше предпочитать строгие операторы, чтобы избежать скрытых багов.
- Пример показывает, как один и тот же набор данных даёт разный итог в зависимости от оператора.
Строгие операторы === и !== проверяют совпадение как значения, так и типа данных. Использование строгих сравнений предотвращает неочевидные ошибки, связанные с автоматическим приведением типов.
Сравнения:
$<результат> = $<a> == $<b>;
$<результат> = $<a> === $<b>;
$<результат> = $<a> != $<b>;
$<результат> = $<a> !== $<b>;
$<результат> = $<a> < $<b>;
$<результат> = $<a> <= $<b>;
$<результат> = $<a> > $<b>;
$<результат> = $<a> >= $<b>;
Логические операторы
Логические операторы объединяют булевы выражения.
$valid = true;
$active = false;
$valid && $active; // false логическое И
$valid || $active; // true логическое ИЛИ
!$valid; // false логическое НЕ
$valid and $active; // false альтернативный синтаксис И
$valid or $active; // true альтернативный синтаксис ИЛИ
Разбор:
&&(И),||(ИЛИ),!(НЕ) формируют булевы выражения.andиorлогически эквивалентны&&и||, но имеют другой приоритет.- Из-за приоритета
and/orчасто ведут к неожиданному результату в выражениях с присваиванием. - Рекомендация: для условий в коде использовать
&&и||как более предсказуемые. - Пример с
true/falseнаглядно показывает результат каждой логической операции.
Операторы && и || имеют более высокий приоритет, чем and и or. Смешивание этих стилей в одном выражении может привести к неожиданному порядку вычислений.
Логические операции:
$<результат> = $<a> && $<b>;
$<результат> = $<a> || $<b>;
$<результат> = !$<a>;
$<результат> = $<a> and $<b>;
$<результат> = $<a> or $<b>;
Специальные операторы и символы
Доллар
Символ доллара $ предшествует имени каждой переменной в PHP. Он отличает переменные от ключевых слов и литералов.
$name = "Tom";
$age = 30;
$is_active = true;
Разбор:
- Все имена переменных в PHP обязательно начинаются с
$. - Имя после
$чувствительно к регистру:$ageи$Age— разные переменные. - Тип значения определяется при присваивании (динамическая типизация).
- Допустимы буквы, цифры и
_, но имя не должно начинаться с цифры. - Такой префикс сразу визуально отличает переменные от функций и констант.
Константы и имена функций, классов, методов используются без символа доллара.
Пример - объявление переменной:
$<имя> = <значение>;
Присваивание с преобразованием типа:
$<имя> = (<тип>) <выражение>;
Стрелка
Двойная стрелка -> обращается к свойствам и методам объектов.
$user = new User();
$user->name = "Elena";
$user->save();
echo $user->getName();
Разбор:
new User()создаёт экземпляр класса и возвращает объект.- Оператор
->обращается к свойствам и методам конкретного объекта. $user->name = "Elena"присваивает значение свойству экземпляра.$user->save()и$user->getName()вызывают методы этого объекта.- Такой доступ работает только с объектами, а не со статическими членами класса.
Стрелка применяется только к экземплярам классов. Для статических членов класса используется двойное двоеточие ::.
Обращение к свойству объекта:
$<объект>-><свойство>
Вызов метода объекта:
$<объект>-><метод>(<аргументы>);
Двойное двоеточие
Двойное двоеточие :: обращается к статическим свойствам, методам и константам класса.
class Config {
const MAX_SIZE = 1024;
public static $timeout = 30;
public static function getDefault() {
return self::MAX_SIZE;
}
}
echo Config::MAX_SIZE; // 1024
echo Config::$timeout; // 30
echo Config::getDefault(); // 1024
Разбор:
::обращается к статическим членам класса без создания объекта.const MAX_SIZEзадаёт константу класса, доступную какConfig::MAX_SIZE.public static $timeoutхранит общее для класса состояние.- Статический метод
getDefault()вызывается напрямую через имя класса. - Внутри класса
self::MAX_SIZEссылается на собственную константу этого класса.
Внутри класса для обращения к собственным статическим членам используются ключевые слова self, static или parent.
Обращение к статическому свойству:
<Класс>::$<свойство>
Вызов статического метода:
<Класс>::<метод>(<аргументы>);
Стрелка-функция
Стрелка-функция fn() определяет короткие анонимные функции с неявным возвратом.
$square = fn($x) => $x * $x;
echo $square(5); // 25
$users = ["alice", "bob", "charlie"];
$upper = array_map(fn($name) => strtoupper($name), $users);
// ["ALICE", "BOB", "CHARLIE"]
Разбор:
fn($x) => $x * $xзадаёт короткую анонимную функцию с неявнымreturn.- Полученная функция сохраняется в переменную и вызывается как обычный callable (
$square(5)). array_map(...)применяет функцию к каждому элементу массива.- Во втором примере
strtoupperпереводит имена в верхний регистр. - Стрелочные функции автоматически "захватывают" внешние переменные по значению.
Стрелочные функции автоматически захватывают переменные из окружающей области видимости без необходимости использования use.
Тернарный оператор
Тернарный оператор ? : выбирает значение на основе условия.
$<результат> = <условие> ? <значение_если_истина> : <значение_если_ложь>;
$age = 20;
$status = $age >= 18 ? "adult" : "minor";
// Сокращённая форма (оператор Элвиса)
$username = $_GET['user'] ?? "guest";
Разбор:
- Тернарный оператор
?:возвращает одно из двух значений по условию. - В примере статус определяется по возрасту одной компактной строкой.
??(null coalescing) берёт левое значение, если оно существует и неnull.$_GET['user'] ?? "guest"безопасно задаёт значение по умолчанию для необязательного параметра.- Важно различать
??и?:: первый проверяетnull, второй — любую "ложность".
Оператор Элвиса ?: возвращает левый операнд, если он приводится к истине, иначе правый операнд. Оператор нулевого слияния ?? возвращает левый операнд, если он не равен null, иначе правый операнд.
Оператор нулевого слияния:
$<результат> = $<переменная> ?? <значение_по_умолчанию>;
Оператор Элвиса:
$<результат> = $<переменная> ?: <значение_по_умолчанию>;
Match-выражение
Конструкция match сопоставляет значение с несколькими вариантами и возвращает результат.
$statusCode = 404;
$message = match($statusCode) {
200, 201 => "Success",
400 => "Bad request",
404 => "Not found",
500 => "Server error",
default => "Unknown status"
};
Разбор:
matchсравнивает значение строго (===) с каждым вариантом.- Каждая ветка возвращает результат через
=>, который присваивается в$message. - Можно группировать несколько вариантов в одной ветке (
200, 201 => ...). defaultобязателен, если не покрыты все возможные значения.- В отличие от
switch,matchне требуетbreakи сам является выражением.
Match возвращает значение, которое можно присвоить переменной или использовать в выражении. Все ветви должны возвращать совместимые типы.
Match-выражение:
$<результат> = match(<выражение>) {
<значение1>, <значение2> => <результат1>,
<значение3> => <результат2>,
default => <результат_по_умолчанию>
};
Условный оператор (if)
if (<условие>) {
// действия при истине
} elseif (<условие>) {
// действия при втором условии
} else {
// действия при лжи
}
Разбор:
ifпроверяет первое условие и выполняет блок только при истинном результате.elseifдобавляет альтернативные проверки, если предыдущие не сработали.elseвыполняется как ветка по умолчанию, когда все условия ложны.- Скобки после
if/elseifобязательны, а тело ветки оформляется в{ ... }. - Это базовая конструкция управления потоком выполнения программы.
Приоритет операторов
Приоритет операторов определяет порядок вычисления выражений. Операторы с высоким приоритетом вычисляются раньше операторов с низким приоритетом.
$result = 2 + 3 * 4; // 14, умножение выполняется раньше сложения
$result = (2 + 3) * 4; // 20, скобки изменяют порядок
Разбор:
- Без скобок срабатывает стандартный приоритет:
*выше+, поэтому результат14. - Скобки принудительно меняют порядок вычисления, и выражение даёт
20. - Один и тот же набор операторов может дать разный итог из-за приоритета.
- Явные скобки делают код предсказуемым и облегчают чтение другим разработчикам.
- Это особенно важно в длинных булевых и арифметических выражениях.
При одинаковом приоритете операторы вычисляются согласно ассоциативности: слева направо или справа налево. Например, оператор присваивания ассоциативен справа налево, а арифметические операторы — слева направо.
Явное использование скобок повышает читаемость кода и исключает неоднозначности в порядке вычислений, даже когда приоритет операторов известен разработчику.
Частые ошибки новичков
| Ошибка | Что происходит | Как писать надёжнее |
|---|---|---|
if ($a = 1) вместо if ($a == 1) | Присваивание внутри условия, логика ломается | В условиях используйте сравнение и строгие операторы |
and вместе с = | Из-за приоритета результат отличается от ожидаемого | Для булевой логики в выражениях используйте && и ` |
Слепое использование == | Автоприведение типов даёт ложные совпадения | Для бизнес-логики предпочитайте === и !== |
Интерполяция сложных выражений без {} | Непредсказуемая подстановка в строках | Сложные выражения всегда пишите как {$expr} |
Непонимание разницы ?: и ?? | Теряются значения 0, "", false | ?? — для null, ?: — для falsey-значений |
Мини-чеклист перед запуском кода
- Все инструкции закрыты
;, кроме синтаксических блоков. - Строки с переменными в шаблонах проверены на корректные
"и экранирование. - Сравнения в условиях выполнены через
===, если нет явной причины для==. - В выражениях с несколькими операторами есть скобки для явного приоритета.
- Комментарии описывают "почему", а не повторяют строку кода.
Связанные статьи
- Ключевые слова языка PHP — конструкции языка в системном виде
- Встроенные функции и расширения PHP — инструменты для практики после синтаксиса
- Модель исполнения PHP — как этот код выполняется на сервере