10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Просто о сложном или изучаем PHP 7! Часть 3. Переменные и их типы в PHP

Урок 3. Переменные в PHP


1. Как создать переменную PHP?
3. Вывод переменных PHP
3. Операции с переменными PHP

Переменные в php – это некий информационный контейнер, который может содержать в себе различные типы данных (текст, цифры, массивы и так далее). В целом переменные позволяют создавать, хранить, изменять, а в дальнейшем оперативно обращаться к информации, заданной в них.

Как создать переменную в PHP

Вначале переменные содержат знак $ (доллар) – обозначение использования переменной, потом буквы латинского алфавита (от a до z и маленькие и большие), в конце могу содержать цифры. Также в названии допускается использование нижнего подчёркивания (не в конце).

Как можно называть переменные:

$var
$variable
$year1945
$_variable
Как нельзя называть переменные:

$1 – состоит только из цифры
$1var – нельзя начинать название переменной с цифры
$/var – из дополнительных символов допускается только нижнее подчёркивание _
$переменная – кириллица разрешена документацией php, но не рекомендуема
$var iable – нельзя использовать пробелы

Каждой переменной присваивается значение. Для присвоения значения используется знак = (равно). В течение обработки скрипта значение переменной может неоднократно меняться в зависимости от разных условий.

Вывод переменных PHP

Отдельно следует разобрать то, как отобразить переменные при помощи операторов вывода, работу которых мы разобрали в прошлом уроке Создание странцы PHP. Операторы вывода. . Ниже приведу ряд наглядных примеров с комментариями.

Операции с переменными PHP

Арифметические операции в PHP
В случае с числовыми значениями можно проводить арифметические операции: сложение, вычитание, умножение и так далее.

-$a (отрицание) Смена знака $a.
$a + $b (сложение) Сумма $a и $b.
$a – $b (вычитание) Разность $a и $b.
$a * $b (умножение) Произведение $a и $b.
$a / $b (деление) Частное от деления $a на $b.
$a % $b (деление по модулю) Целочисленный остаток от деления $a на $b.
Рассмотрим примеры

Операции инкремента и декремента в PHP
Данные операции пригодятся в основном при построении циклов, о которых поговорим чуть позже.
Префиксный – операторы, прописанные ПЕРЕД переменной (–$a; ++$a). Возвращают значение переменной до изменений.
Постфиксный – операторы, прописываемые после переменной ($a–; $a–). Возвращают значение переменной с изменениями.
Инкремент – увеличения значения.
Декремент – уменьшение значения.

++$a Префиксный инкремент. Увеличивает $a на единицу и возвращает значение $a.
$a++ Постфиксный инкремент. Возвращает значение $a, а затем увеличивает $a на единицу.
–$a Префиксный декремент. Уменьшает $a на единицу и возвращает значение $a.
$a– Постфиксный декремент. Возвращает значение $a, а затем уменьшает $a на единицу.

Операции присвоения в PHP
Базовый оператор выглядит как =. На первый взгляд может показаться, что это оператор равно. На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения, (т.е. устанавливается результирующим значением). Комбинированные операторы – это такие операторы, которые позволяют использовать предыдущие значения переменных для последующих операций (дописывать в строковую переменную (с текстом) или складывать числовые значения).

Существуют также операции сравнения и логические, но о них мы поговорим в следующих уроках. Постараюсь сразу не пугать Вас большим объёмом информации!)

Просто о сложном или изучаем PHP7! Часть 6. Операторы сравнения в PHP

Операторы сравнения применяются для сравнения двух значений. В зависимости от значений, которые сравниваются между собой, операторы сравнения возвращают логические значения true (истина) или false (ложь). Как таковые, операторы сравнения сами по себе практически не используются, основное их применение это совместная работа с оператором if, который будет рассмотрен в седьмой части.

Просто о сложном или изучаем PHP7! Часть 6. Операторы сравнения в PHP

Создадим две переменные, $a и $b и присвоим им значения 76 и 93 соответственно.

Создадим ещё шесть переменных $c_01 , $c_02 , $c_03 , $c_04 , $c_05 и $c_06

где: $c_01 = $a $b — переменной $c_03 присвоено значение $a > $b (переменная $a больше переменной $b )

$c_04 = $a >= $b — переменной $c_04 присвоено значение $a >= $b (переменная $a больше либо равна переменной $b )

$c_05 = $a == $b — переменной $c_05 присвоено значение $a == $b (переменная $a равна переменной $b )

Выведем в окне веб-браузера тип переменной $c_01 , используя функцию gettype

Перейдём в адресной строке веб-браузера по адресу http://localhost/log.php и видим, что переменная $c_01 имеет тип boolean

Таким же образом выведем в окне веб-браузера типы переменных $c_02 , $c_03 , $c_04 , $c_05 и $c_06 , дописав следующие строки кода:

echo «Переменная c_02 имеет тип:»; echo gettype ($c_02);

echo «Переменная c_03 имеет тип:»; echo gettype ($c_03);

echo «Переменная c_04 имеет тип:»; echo gettype ($c_04);

echo «Переменная c_05 имеет тип:»; echo gettype ($c_05);

Выведем в окне веб-браузера значения переменных $c_01 , $c_02 , $c_03 , $c_04 , $c_05 и $c_06 дописав в файле log.php строки кода:

echo «Переменная c_01 принимает значение: $c_01»;

echo «Переменная c_02 принимает значение: $c_02»;

echo «Переменная c_03 принимает значение: $c_03»;

echo «Переменная c_04 принимает значение: $c_04» ;

echo «Переменная c_05 принимает значение: $c_05»;

В окне веб-браузера видим, что переменные $c_01 , $c_02 и $c_06 приняли значение 1 (единица означает, что переменная имеет значение true )

Если выше в окне веб-браузера мы по отдельности выводили тип и значения переменных $c_01 , $c_02 , $c_03 , $c_04 , $c_05 и $c_06 , то теперь выведем тип и значение данных переменных в одну строку. Для этого воспользуемся функцией var_damp

В файле log.php допишем следующие строки кода:

echo ‘Переменная $c_01, равная $a $b, имеет тип и принимает значение:’; echo var_dump ($a > $b);

echo ‘Переменная $c_04, равная $a >= $b, имеет тип и принимает значение:’; echo var_dump ($a >= $b);

echo ‘Переменная $c_05, равная $a == $b, имеет тип и принимает значение:’; echo var_dump ($a == $b);

В итоге в окне веб-браузера видим результат работы функции var_damp :

Переменная $c_01, равная $a $b, имеет тип и принимает значение:bool(false) — переменная $c_03 имеет тип bool и значение false

Переменная $c_04, равная $a >= $b, имеет тип и принимает значение:bool(false) — переменная $c_04 имеет тип bool и значение false

Переменная $c_05, равная $a == $b, имеет тип и принимает значение:bool(false) — переменная $c_05 имеет тип bool и значение false

Рассмотрим, почему переменные (на примере $c_01 и $c_03 ) принимают значения true или false

PHP — типы переменных

Дата публикации: 2017-10-23

От автора: основной способ хранения информации в программе PHP — это использование переменной. Ниже приводятся основные сведения о том, как работают в PHP переменные.

Все переменные в PHP обозначаются символом доллара ($) в начале имени переменной.

Значение переменной — это значение, присвоенное ей последним.

Значение переменным присваиваются с помощью оператора =, слева от оператора = указывается имя переменной, а справа присваиваемое значение.

Бесплатный курс по PHP программированию

Читать еще:  Как пригласить друзей в группу Одноклассники и добавить участников?!

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Переменные могут объявляться (но не обязательно) перед присвоением им значения.

Переменные в PHP не имеют встроенных типов — для переменных заранее не определяется, будет ли она использоваться для хранения числа или строки символов.

Для переменных, которые указываются до присвоения им значения, используется значение по умолчанию.

PHP эффективно преобразует типы из одного в другой, когда это необходимо.

Переменные PHP похожи на переменные Perl.

PHP поддерживает восемь типов данных, которые используются для переменных —

Целые числа — это целые числа без дробной части, например, 4195.

Дробные числа — это числа с плавающей запятой, такие как 3.14159 или 49.1.

Логические выражения — имеют только два возможных значения: true или false.

NULL — это особый тип, который имеет только одно значение — NULL.

Строки — это последовательности символов, например, «PHP поддерживает строковые операции».

Массивы — это именованные и проиндексированные наборы других значений.

Объекты — это экземпляры классов, определяемые программистом, которые могут содержать другие типы значений и функции, характерные для этого класса.

Ресурсы — это специальные переменные, которые содержат ссылки на внешние по отношению к PHP ресурсы (такие как соединения с базой данных).

Первые пять являются простыми типами, а следующие два (массивы и объекты) являются составными — составные типы могут содержать другие произвольные значения произвольного типа, тогда как простые типы — нет. Мы рассмотрим в этой статье только простые типы переменных. Массивы и объекты будут пояснены отдельно.

Целые числа

Они представляют собой целые числа без дробной части, например, 4195. Это простейший тип. Он соответствует простым целым числам, как положительным, так и отрицательным. Целые числа могут быть назначены переменным, а также их можно использовать в выражениях, например:

Переменные и типы данных в PHP

Объявление переменной

Типы данных

В отличии от большинства других языков программирования, язык РНР является слаботипизированным, что в свою очередь позволяет не требовать строгого задания типа при их объявлении. В ходе выполнения программы тип переменной может быть изменен неявным образом без специальных преобразований, что позволяет разработчику практически не задумываться о типах данных.

Также встречаются и псевдотипы – условные обозначения одного или нескольких типов. В основном они используются совместно функциями и методами. Например, mixed – любой тип, number – может хранить значения типа integer или double, iterable – итерируемый объект. Ключевое слово void обозначает отсутствие переменной. Несколько типов могут быть разделены вертикальной чертой, что аналогично логичной операции «или». Например, псевдотип number можно записать, используя следующую комбинацию базовых типов: integer|double.

Опишем основные типы данных, которые поддерживаются РНР:

Integer. Целое число, максимальное значение которого зависит от разрядности операционной системы. В случае 32-битной операционной системы число может принимать значения от -2 147 483 648 до 2 147 483 647. Если разрядность составляет 64 бита, диапазон возможных значений от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807.

Double|Float. Вещественное число, минимально возможное значение которого составляет от ±2.23х10 -308 степени до ±1.79х10 308 .

Boolean. Логический тип, способный принимать лишь два значения: True (истина) и False (ложь).

String. Строковый тип. Может хранить строку, максимальный размер которой составляет 2 Гбайт.

Array. Массив. Это объединение нескольких переменных под одним именем, обращаться к отдельным переменным которых можно при помощи индекса массива.

Object. Объект. Это конструкция, объединяющая несколько разнотипных переменных и методы их обработки.

Resource. Дескриптор, позволяющий оперировать тем или иным ресурсом, доступ к которому осуществляется при помощи библиотечных функций. Дескрипторы применяются при работе с файлами, базами данных, динамическими изображениями и т.д.

Null. Специальный тип, который сигнализирует о том, что переменная не была инициализирована.

Callable|Callback. Некоторые функции РНР могут принимать в качестве аргументов другие функции, которые называются функциями обратного вызова. Переменные данного типа содержат ссылки на такие функции.

Целые числа

Поскольку большинство прикладных задач носит исключительно арифметический характер, наиболее распространенными в программировании являются целые числа. Кроме того, данный тип данных наиболее быстродействующий.

Важно также учитывать тот факт, что в языке программирования PHP не бывает переполнения – выхода значения за допустимые границы. Например, если полученное значение не помещается в Integer, для него автоматически выбирается больший тип данных Float.

Объявление целочисленных переменных может осуществляться несколькими способами:
Положительное целое число объявляется без указания перед ним знака плюс. Для объявления отрицательного числа необходимо перед ним указать символ минуса. По умолчанию числа задаются в десятичной системе счисления, однако в РНР можно объявлять переменные в восьмеричной и шестнадцатеричной системах счисления. Более подробно о целых числах и системах счисления можно узнать из статьи Целые числа (Integer)

Вещественные числа

Вещественные числа (Float или Double) имеют очень большой интервал, выйти за который практически нереально. Существуют две формы записи вещественного числа: стандартная и экспоненциальная.

При выводе под число с плавающей точкой отводится 12 символов, это значение может быть изменено при помощи директивы Precision в конфиrурационном файле php.ini.

Объявление вещественных чисел:
Более подробно о вещественных числах можно узнать из статьи Числа с плавающей точкой (Float)

Логический тип

Строки

Кавычки

Строки и строковые переменные создаются путем заключения той или иной фразы в кавычки. В РНР имеется возможность применять несколько типов кавычек, каждый вид которых имеет собственные особенности.

Двойные кавычки (. ) позволяют вместо переменных РНР подставлять их значения. Такая подстановка называется интерполяцией.
Одиночные кавычки (. ) не позволяют подставлять значение переменных.

Значение, заключенное в обратные кавычки (`. `), рассматривается как системная команда. Вместо такой системной команды возвращается результат выполнения команды:
В языках программирования обычно поддерживаются два варианта кавычек: одиночные и двойные, для того чтобы при необходимости применять одиночные кавычки для обрамления двойных, а двойные – для обрамления одиночных. Более детально можно узнать из статьи Разница между двойными и одинарными кавычками в PHP.
Иногда при использовании двойных кавычек необходимо подавить подстановку значений переменной. Для этого применяется экранирование символа $ обратным слешем :
Аналогично экранирование применяется и для размещения двойных кавычек в строке, обрамленной двойными же кавычками.

Применение обратного слеша с рядом другими символами интерпретируется особым образом. Наиболее часто используются символы перевода строки (n), возврат каретки (r), символ табуляции (t), обратный слеш (\), двойная () и одинарная кавычка (). Размещение переменных и специальных символов (за исключением ) в одиночных кавычках не приводит к их специальной интерпретации.

Хорошим тоном является указание границ переменной внутри строки обрамлением фигурными скобками (<. >):

Блог Александра Денисюка

Два месяца назад я перешёл на PHP7 и в этом посте хочу поделиться нововведениями, которые пришлись по нраву мне больше всего. Во первых, переход на новую ветку PHP обусловлен приростом производительности и уменьшением потребляемых ресурсов, т. е. крупные сайты с PHP7 могут в два раза снизить расходы на хостинг и быстрее генерировать веб-страницу конечному пользователю. Здесь выигрывают сразу и владельцы сайтов, и их посетители.

Читать еще:  Ошибка 498 — Не удалось загрузить или обновить приложение.

Это сравнение скорости между версиями 5.6 и 7.0 на различных платформах. Zend Framework даёт прирост скорости на 133%, а WordPress — 129%. Такое улучшение PHP имеет позитивные последствия для бизнеса.

В прошлом году Badoo, WordPress.com, Tumblr и многие другие гиганты перешли на PHP7. Так, например, компании Badoo за счёт снижения CPU в два раза и уменьшения потребления памяти в 8 раз удалось сэкономить 1 млн долларов. Сайт WordPress.com также полностью переведён на PHP7, где прирост производительности действительно заметен:

https://t.co/VrQffeOtG0 has been 100% switched over to PHP7, bringing significant performance improvements. #wcus pic.twitter.com/MChiS9QBJh

Быстродействие в новых версиях стало самым крутым и обсуждаемым нововведением. Теперь не нужно заморачиваться по оптимизации каких-то участков кода, а сразу писать понятный и поддерживаемый код. Во вторых, в PHP 7.0 и 7.1 введено большое количество улучшений на уровне синтаксиса и функциональности. Далее на примерах я покажу, что мне понравилось в новых версиях и как эти нововведения поменяют язык PHP в будущем на уровне кода.

Замена тернарного оператора

На замену тернарного оператора пришёл «оператор объединения с null» или «null-коалесцентный оператор». Через два знака вопроса (??) можно указать цепочку значений в одну строку и будет выбрано первое значение, которое не равно null. Раньше этот подход применялся вместе с функцией isset(). Сейчас можно указать даже не существующие переменные и не мучатся c большой вложенностью как с тернарным оператором.

Групповое объявление классов, констант и функций

Начиная с версии 7.0 появилась возможность группировать объявления импорта классов, функций и констант, находящиеся в одном пространстве имён, в одной строке с помощью оператора use. Это нововведение на уровне синтаксического сахара, которое может наделить объявление имён каких-то компонентов определённой логикой.

Декларация типов и возвращаемых значений

Это самое мощное нововведение для ООП. Теперь при объявлении метода для каждой переменной можно указать свой тип, а также тип данных, который вернёт этот метод. В PHP 7.0 доступны следующие типы: array, callable, bool, float, int, string, имя класса или интерфейса. В версии 7.1 добавили ещё void и iterable. Тип void можно использовать только в возвращаемых значениях функций, которые ничего не возвращают. Псевдо-тип iterable используется в качестве значения массива или объекта, реализующего интерфейс Traversable.

В примере выше отработала принуждающая декларация типов, т. е. PHP динамически привёл значения к нужному типу, когда в переменную с объявленным типом int мы передали string, например. Вместо того, чтобы сгенерировать ошибку, все значения переменных и результат функции был преобразован к указанному типу на лету. Это поведение установлено по умолчанию.

Строгую типизацию можно включить, если в начале скрипта прописать declare(strict_types=1) . Все значения должны полностью соответствовать указанным типам. В противном случае будет сгенерирована ошибка TypeError. Строгая типизация не затрагивает весь остальной код и её нужно прописывать для каждого скрипта отдельно.

В версии 7.1 появилась возможность обнулить возвращаемые типы. Это расширяет список возвращаеммых типов до null. Теперь функция может вернуть какой-то явно указанный тип или null. Достигается такое поведение путём добавления префикса в виде знака вопроса к указанному типу:

Декларация типов и возвращаемых значений выводит PHP на новый уровень и эти нововведения мне нравятся больше всего, т. к. со стороны разработчика повышается читабельность кода; чёткая согласованность входных и выходных данных; программист может быстрее понять, чего ожидать от функции; легче документировать код; появляется возможность изменять типы данных на лету. Это основополагающая функциональность PHP7, которой не знать уже сейчас недопустимо.

Обработка ошибок и исключений

В PHP 7.0 появился новый класс для внутренних ошибок Error и интерфейс исключений Throwable. Теперь Error и старый класс Excetion реализуют Throwable (пользовательские классы не могут реализовывать данный интерфейс). Exception можно использовать для отлова исключений, которые будут обработаны и выполнение программы продолжится. Класс Error служит для необратимых исключений и выбрасывается в случае ошибки PHP или на уровне ошибок разработчиков.

Большинство ошибок уровня E_ERROR или E_RECOVERABLE_ERROR будут выбрасывать Error, но некоторые будут выбрасывать объекты подклассов: ArithmeticError, AssertionError, ParseError, DivisionByZeroError, TypeError и ArgumentCountError (с версии 7.1). Эти подклассы ошибок не могут быть брошены самостоятельно, а только лишь словлены. Иерархию всех исключений можно представить в виде дерева:

Начиная с версии 7.1 появилась возможность в блоке catch обрабатывать сразу несколько исключений, перечисляя их через символ вертикальной черты. Может быть полезно для обработки одинаковых по логике ошибок или пользовательских исключений.

На место фатальных ошибок пришли исключения, которые могут быть обработаны и позволяют корректно завершить программу в случае каких-то косяков. Это добавляет гибкости PHP-приложению.

Остальные нововведения одним списком

Нововведения в PHP7+ это лишь начало большого перехода на новый уровень языка. С каждым релизом приложения будут становиться быстрее и безопаснее. На версии 7.0 и 7.1 нужно отреагировать уже сегодня и будь в курсе новых тенденций PHP, дабы не выпадать из сферы. Ниже привожу одним списком остальные нововведения:

7.0 Оператор spaceship (космический корабль) ↩
7.0 Задание констант массивов с помощью define()
7.0 Появились анонимные классы ↩
7.0 Синтаксис кодирования Unicode ↩
7.0 Добавлен метод в замыкания Closure::call()
7.0 unserialize() с фильтрацией ↩
7.0 Новый класс IntlChar
7.0 Улучшена старая функция assert()
7.0 Выражение return в генераторах ↩
7.0 Делегация генератора с помощью конструкции yield from
7.0 Новая функция intdiv() для целочисленного деления ↩
7.0 session_start() принимает массив опций ↩
7.0 Новая функция preg_replace_callback_array()
7.0 Новые функции random_bytes() и random_int()
7.0 list() может раскрывать объекты реализующие ArrayAccess
7.0 Обращение к методам и свойствам класса при клонировании (clone $foo)->bar()
7.1 Короткий синтаксис для list()
7.1 Публичные и приватные константы классов ↩
7.1 Поддержка ключей в list()
7.1 Поддержка отрицательных смещений для строк ↩
7.1 Расширены функции openssl_encrypt() и openssl_decrypt()
7.1 Преобразование callable в Closure с помощью Closure::fromCallable()
7.1 Новая функция pcntl_async_signals()
7.1 Поддержка Server Push в CURL 7.46 ↩

Операторы в PHP

Операторы – одна из важнейших и базовых тем. Почти все выражения так или иначе содержат их в себе. Без операторов в PHP не было бы возможности делать что-либо с данными вообще, так же, как, например, в математике. Поэтому отнеситесь к данной теме серьёзно, а в конце обязательно сделайте домашнее задание – только практика, только хардкор.

Но прежде чем перейти к изучению операторов, я предлагаю изучить функцию var_dump(). Она позволяет вывести тип и значение чего-либо.

Читать еще:  Как выложить картинку в интернет

Или же переменной:

2 меньше 4. Результат – истина. Всё верно.

Поздравляю, теперь мы в любой момент можем узнать, что находится в переменной, или же сразу узнать результат какого-либо выражения. Давайте теперь вернёмся к нашей основной теме урока.
Тема операторов очень плотно переплетается с темой типов данных. Как мы с вами уже говорили на прошлом уроке, тип данных, который получится в результате какого-либо выражения, будет зависеть от оператора. И, например, результатом сложения при использовании оператора плюса всегда будет число.

Приоритет операторов

Начнём с того, что операторы имеют разный приоритет. Как, например, в математике: оператор умножения будет более приоритетным по сравнению с оператором сложения:

Приоритетом можно управлять с помощью круглых скобок, например:

Ну и тут думаю всё понятно:

В целом приоритеты операторов довольно предсказуемы.
Приоритет всех операторов в PHP можно посмотреть в официальной документации.

Типы операторов в PHP

А теперь давайте рассмотрим разные типы операторов

Арифметические операторы

Тут нас ждут знакомые со школьной скамьи операторы:

int 9
int 3
int 18
int 2
int 2
int 36

Многие впадают в ступор от оператора остатка от деления. Тут всё просто. В нашем случае мы вычисляем остаток от деления 6 на 4. Нацело не делится, целая часть – 1, и 2 в остатке. Ещё несколько аналогичных примеров для понимания:

int 1
int 5
int 0

Думаю, арифметические операторы больше не требуют дополнительных разъяснений.

Оператор присваивания

С ним мы уже работали. Используется для присваивания какого-либо значения в переменную.
Классический пример:

Ок, тут всё просто. А как на счёт такого:

Здесь переменной $x присвоили значение 5, а затем умножили на 2 и положили результат выражения в переменную $result. Да, в PHP так тоже можно, хоть и не приветствуется, так как код выглядит довольно запутанно.

Помимо этого есть так называемые сокращенные, комбинированные операторы присваивания.
Например, в комбинации с оператором сложения:

можно было бы записать как

Таким образом, если что-то совершается с левым операндом в исходном виде, то можно использовать эти сокращённые варианты. И да, это применяется и выглядит весьма элегантно, стоит к ним привыкать уже сейчас. Давайте рассмотрим ещё несколько примеров:

И с конкатенацией строк:

string ‘Hello world!’ (length=12)

Операторы сравнения

Ну тут из названия понятно, что это за операторы и для чего они предназначены. Результатом их работы всегда будет булево значение (true или false).

Начнём с операторов равенства/неравенства:

boolean true
boolean false
boolean false
boolean true

Давайте поясню. Оператор == приводит операнды к одному типу и после сравнивает их значения. Так строка ‘2’ была преобразована к числу и значения оказались равными.
Оператор тождественного равенства === не выполняет приведения типов и сравнивает сначала то, что типы значений идентичны, например, целые числа, а затем сравнивает их значения. И если они одинаковы, то только в таком случае возвращает true.

Оператор неравенства != приводит типы к одному и сравнивает значения. Если они не равны, вернёт true, иначе – false.
Оператор тождественного неравенства !== сначала сравнивает типы, если они не идентичны, например, строка и число, то вернёт true, иначе сравнит их значения. Если они не равны, вернёт true, иначе – false.

Также к операторам сравнения относятся:

boolean false
boolean true
boolean false
boolean true

Тут всё очевидно, не будем задерживаться.

Spaceship

А теперь рассмотрим оператор сравнения, который появился в PHP7. Это спейсшип (или космический корабль) . Похож на корабль штурмовиков из звёздных войн, не так ли?

Логика у этого оператора следующая:
$a $b
Если $a > $b, вернёт 1
Если $a == $b, вернёт 0
Если $a

int -1
int 0
int 1

Данный оператор был введён для использования в функциях сортировки. Эту тему мы пока поднимать не будем, просто знайте, что вот такой интересный оператор появился в последней версии PHP.

Инкремент и декремент

Зачастую в разных алгоритмах приходится увеличивать и уменьшать целые числа на единицу.
Для этого существуют специальные операторы инкремента и декремента.
Варианты могут быть самыми разными:

  • $i++ – постфиксный инкремент, возвращает текущее значение $i, а затем увеличивает значение на единицу
  • $i– – постфиксный декремент, возвращает текущее значение $i, а затем уменьшает значение на единицу
  • ++$i – префиксный инкремент, сначала увеличивает значение переменной $i на единицу, а затем возвращает результат
  • –$i – префиксный декремент, сначала уменьшает значение переменной $i на единицу, а затем возвращает результат

Давайте рассмотрим несколько простых примеров:

int 5
int 7
int 7
int 6

С инкрементом и декрементом на этом всё. Идём дальше.

Логические операторы

А теперь поговорим об одном из самых важных типов операторов, а именно – логических. Эти операторы используются для вычисления условий. Результатом такого оператора всегда будет истина или ложь. При этом операндами так же выступают истина или ложь.
Давайте перечислим их:

  • && – логическое И, вернёт true, только если оба операнда истинны (true)
  • || – логическое ИЛИ, вернёт true, если хотя бы один из операндов является истинным
  • ! – ОТРИЦАНИЕ, возвращает true, если операнд – false, и наоборот. Применяется если нужно инвертировать условие, зачастую это очень кстати.
  • xor – исключающее ИЛИ, вернёт true, только если один из операндов true, а другой – false

Давайте посмотрим на примере:

А теперь давайте более интересно – определим, является ли число чётным и при этом оно больше 10. Для того, чтобы проверить на чётность – достаточно взять остаток от деления на 2 и сравнить с нулём. Если будет 0, то число чётное. Давайте напишем первое вычисление:

А теперь второе:

Остаётся сделать так, чтобы выполнились оба условия. Воспользуемся логическим И:

Вычисление можно было бы выразить и одной строкой:

Однако, согласитесь, первый вариант разбит по пунктам и более понятен. Я хочу, чтобы Вы поняли. Ваш код не должен занимать как можно меньше места. Он должен быть понятен. Можно сказать, будет очень неплохо, если он будет скучен. Он должен легко читаться программистами. В первом случае всё очевидно: выяснили, что число чётное, что оно больше 10, и решили, что оба эти условия выполняются одновременно. Вот как-то так должен мыслить человек, читающий Ваш код.

И ещё, если операнды не являются булевыми значениями, они будут автоматически приведены к true или false. Оставим это на самостоятельное ковыряние – в домашнем задании будет пункт, касательно этого замечания. Обязательно выполните его.

Строковый оператор конкатенации

Да-да, для строк существует только один оператор – для их объединения в одну: оператор конкатенации. Он представляет из себя точку и его использование выглядит следующим образом:

На этом заканчивается наш урок по операторам. Обязательно выполните домашку, без неё дальше не пойдёт.

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов:
×
×