Операторы в PHP. Приоритет выполнения операторов.

Эта заметка посвящена операторам в PHP. В ней я расскажу вам какие бывают виды операторов, и как обычно рассмотрим их использование на примере PHP. Тема операторы PHP является основополагающей и к ее изучению следует подойти серьезно. Поехали!

Оглавление

Что такое оператор в языке программирования

Открыл для себя отличный сайт для поиска определений понятий — glossary.ru. Снова обратимся к нему за помощью:

Оператор — в программировании — фраза алгоритмического языка, определяющая законченный этап обработки данных. В состав операторов входят ключевые слова, данные, выражения и др.
Различают:

  • атомарные операторы, никакая часть которых не является самостоятельным оператором;
  • структурные операторы, объединяющие другие операторы в новый, укрупненный оператор.

Виды операторов в 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 = 5;
?>
				
			
В этом выражении переменной $a присваивается значение 5.

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

Побитовые операторы позволяют устанавливать конкретные биты в 0 или 1 для целочисленных значений. В случае если и левый, и правый операнды строки, побитовые операции будут работать с их ASCII-представлениями.

ПримерНазваниеРезультат
$a & $bПобитовое ‘и’Устанавливаются только те биты, которые установлены и в $a, и в $b.
$a | $bПобитовое ‘или’Устанавливаются те биты, которые установлены либо в $a, либо в $b.
$a ^ $bИсключающее илиУстанавливаются только те биты, которые установлены либо только в $a, либо только в $b
~ $aОтрицаниеУстанавливаются те биты, которые в $a не установлены, и наоборот.
$a << $bСдвиг влевоВсе биты переменной $a сдвигаються на $b позиций влево (каждая позиция подразумевает ‘умножение на 2’)
$a >> $bСдвиг вправоВсе биты переменной $a сдвигаються на $b позиций вправо (каждая позиция подразумевает ‘деление на 2’)

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

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

ПримерНазваниеРезультат
$a == $bРавноTRUE если $a равно $b.
$a ===$bТождественно равноTRUE если $a равно $b и имеет тот же тип. (Добавлено в PHP 4)
$a != $bНе равноTRUE если $a не равно $b.
$a <> $bНе равноTRUE если $a не равно $b.
$a !== $bТождественно не равноTRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)
$a < $bМеньшеTRUE если $a строго меньше $b.
$a > $bБольшеTRUE если $a строго больше $b.
$a <= $bМеньше или равноTRUE если $a is меньше или равно $b.
$a >= $bБольше или равноTRUE если $a больше или равно $b.

Оператор управления ошибками

PHP поддерживает один оператор управления ошибками: знак @. В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.

Пример использования:

				
					<?php
  
 $myFile = @file_get_content('not_existen_file') or
 die("Ошибка при открытии файла");
?>
				
			

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

PHP поддерживает один оператор исполнения: обратные кавычки («). Обратите внимание, что это не одиночные кавычки. PHP пытается выполнить строку, заключенную в обратные кавычки, как консольную команду, и возвращает полученный вывод (т.е. он не просто выдается на выходе а, например, может быть присвоен переменной).
				
					<?php
 // Команда в unix подобных ОС, выводящая список файлов и директорий
 $output = `ls -al`;
  
 // Выводим на экран то, что вернула команда ls
 echo "<pre>$output</pre>";
?>
				
			

Давайте разберемся, что делает этот код. Строка, заключенная в обратные кавычки (клавиша обычно находится ниже Escape), выполняется как консольная команда. Чтобы лучше представить, что это такое обратимся к командной строке Windows.

Нажимаем кнопку Пуск -> Выполнить. Всплывает окно «Запуск программы«. Вводим тамcmd. Открывается черное окно с коммандной строкой Windows. Здесь можно выполнить произвольные комманды.

В примере рассмативается команда ls (list — или по-русски — список). Эта комманда используется в Linux и служит для вывода списка файлов в текущей директории.

Под Windows ее аналогом является команда dir (директория). Чтобы посмотреть список файлов в текущей директории набираем dir и нажимает клавишу Enter. Результат выполнения — список файлов и вложенных каталогов:

Операторы инкремента и декремента

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

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

ПримерНазваниеРезультат
$a and $bЛогическое ‘и’TRUE если и $a, и $b TRUE.
$a or $bЛогическое ‘или’TRUE если или $a, или $b TRUE.
$a xor $bИсключающее ‘или’TRUE если $a, или $b TRUE, но не оба.
! $aОтрицаниеTRUE если $a не TRUE.
$a && $bЛогическое ‘и’TRUE если и $a, и $b TRUE.
$a || $bЛогическое ‘или’TRUE если или $a, или $b TRUE.

Строковые операторы

В PHP есть два оператора для работы со строками. Первый — оператор конкатенации (‘.’), который возвращает объединение левого и правого аргумента. Второй — оператор присвоения с конкатенацией, который присоединяет правый аргумент к левому.

				
					<?php
 $a = "Hello ";
 $b = $a . "World!"; // $b содержит строку "Hello World!"
  
 $a = "Hello ";
 $a .= "World!"; // $a содержит строку "Hello World!"
?>
				
			

Операторы, работающие с массивами

Этим пользоваться крайне не рекомендую!

ПримерНазваниеРезультат
$a + $bОбъединениеОбъединение массива $a и массива $b.
$a == $bРавноTRUE в случае, если $a и $b содержат одни и те же элементы.
$a === $bТождественно равноTRUE в случае, если $a и $b содержат одни и те же элементы в том же самом порядке.
$a != $bНе равноTRUE если массив $a не равен массиву $b.
$a <> $bНе равноTRUE если массив $a не равен массиву $b.
$a !== $bТождественно не равноTRUE если массив $a не равен тождественно массиву $b.
				
					<?php
 $a = array("a" => "apple", "b" => "banana");
 $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");
  
 $c = $a + $b; // Объеденение $a и $b
 echo "Union of $a and $b: ";
 var_dump($c);
  
 $c = $b + $a; // Объединение $b и $a
 echo "Union of $b and $a: ";
 var_dump($c);
?>
				
			

Оператор проверки принадлежности к классу

Оператор instanceof используется для определения того, является ли текущий объект экземпляром указанного класса. С классами мы познакомимся позже, пока не забиваем этим голову.

				
					<?php
 class A { }
 class B { }
  
 $thing = new A;
  
 if ($thing instanceof A) {
 echo 'A';
 }
 if ($thing instanceof B) {
 echo 'B';
 }
?>
				
			

Как я уже сказал, это справочная информация из мануала по PHP. Читаем и задаем вопросы по непонятным моментам. Если вопросы будут интересными и объемными — напишу отдельный пост с примерами.

Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Настройка
help2site
Как правильно настроить Android-смартфон

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

Оборудование
help2site
Хромбук Toshiba Chromebook оценили в 280 долларов

Компания Toshiba разработала и с сегодняшнего дня выпустила в продажу на международный рынок свою новую разработку хромбук Toshiba Chromebook, предназначенный для такого типа людей, которых

Web-Дизайн
help2site
Как сделать дизайн сайта правильно

Оглавление Дизайн сайта: некоторые ошибки оформления. Дизайн сайта имеет значение! И это не просто слова. Оно и понятно, – ведь любой человек старается выделиться не

Web-Дизайн
help2site
Switch. Условные конструкции в PHP. Часть 2.

В первой части статьи про условия в PHP мы разбирались про синтаксис и примеры использования конструкции if…else…. В этой заметке мы продолжим рассматривать управляющие условные