Условная конструкция в реализации от PHP if else практически не отличается от аналогичных правил других языков программирования, и ожидать особенных отличий не придется еще длительное время.
В далекие времена оператор присваивания в языке Pascal был «:=», в то время как C/C++ уверенно управлялся одним «=». По сей день PHP условие if else может использовать три «странных» варианта: «=», «==», «===». Странно также использование символа «$» для обозначения переменной (JavaScript прекрасно обходится без символов уточнения переменных). Между тем рост числа программистов, использующих PHP повседневно - лучшее свидетельство практичности языка.
Суть условной конструкции
Вам будет интересно:Как определить количество элементов в массиве PHP?
Условия определяют ветвление алгоритма. В основе условия лежит выражение, результат исполнения которого всегда только true или false. В содержании этого выражения может быть использовано любое количество операторов и вызовов функций. Это означает, что условие - это, прежде всего, алгоритм.
Исторически условное выражение записывается так:
- (выражение1) [символ сравнения] (выражение2).
Этот момент дает возможность второму выражению использовать результаты работы первого. Этому мало кто придает значение, но зато всякий программист иногда забывает, что символ присваивания «=» - это не символ сравнения «==», а отличие между «==» и «===» является верным основанием переписать условие таким образом, чтобы можно было применить однозначное сравнение по «<» или «>».
Здесь конструкция PHP if else - как примеры «сотрудничества» двух выражений. Первое выражение инкрементирует переменную $iA (=2) и вычисляет переменную $iC (=6) в функции scfAB(). Второе выражение располагает измененным значением $iC, которое умножает на 20 и инкрементирует переменную $iB.
Использование «=», «==» и «===»
В PHP конструкция if else не предполагает использования оператора «=», поскольку это оператор присваивания, но его использование все же возможно. Важно понимать, что ошибочное указание «=» вместо «==» в большинстве случаев сделает условие истинным, вне зависимости от того, что в нем записано.
Для PHP в if () else предполагается применение только «==» или «===». Первое обозначает равенство значений после преобразования типов, второе рассчитывает на соответствие значений и их типов. Остальные операторы (больше, меньше, не равно ...) не вызывают двусмысленного толкования.
Особенность символов и их применения
Описание переменных и условная конструкция на PHP if else позволяют сформулировать проблему, которая существует достаточно давно и стала настолько привычна, что практически не заметна.
По большому счету, оператор сравнения не особенно нужен. Во-первых, во всяком языке есть конструкция исполнения выражения (PHP - не исключение), которое определено динамически в ходе исполнения скрипта. Во-вторых, абсолютно ничего не мешает формировать алгоритм ветвления по ходу исполнения основного алгоритма.
Просто PHP if else, как и его младший брат switch case, привычны и воспринимаемы как программистами, так и пользователями, привыкшими контролировать работу программистов.
Характерная ошибка, которая часто допускается: «=» или «==» - в условии допустимо второе, но никак не первое (если речь не идет об исключении из правил).
Символ «$» для описания переменной избыточен. Если в одном языке можно обойтись без дополнительной идентификации имени переменной, то в PHP это также можно сделать. Стало традиционным отделять «=» от «==». Первое - это присваивание, второе - это сравнение.
Между тем, как только интерпретатор PHP «зашел в» конструкцию if else - нет никаких сомнений, что здесь будет условие. Более того, условие по синтаксису языка PHP: if () else - всегда в скобках, то есть идентифицировать «=» в качестве оператора сравнения всегда возможно.
Другой вопрос, что использование «$» и триады: «=», «==» и «===» стало привычно, и изменить что-либо малоперспективно. Но, манипулируя условием, желательно иметь в виду сказанное. В современных языках много классических конструкций, но настает время, когда придется пересмотреть их смысл.
Программирование приобретает статус серьезного инструмента обработки динамически изменяющейся информации, а это выходит за пределы понимания, почему внутри и вне конструкции PHP if else оператор «=» сохраняет свой смысл.
Условия и объекты
С того момента, как объекты стали естественными для любой разработки, условная конструкция PHP if else сохранилась, но ее место сместилось в тело объекта. Программист может использовать условия, как ему это удобно, но, разрабатывая объекты, он переводит момент принятия решения на объект.
Система объектов приложения - это логика взаимодействия, то есть принятие решений о том, как именно работу дальше принимает объект. Если условная конструкция манипулирует объектами, а не объекты управляют ходом алгоритма, значит, в скрипте что-то сделано не так.