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

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. Результат выполнения — список файлов и вложенных каталогов:

dir4

 

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

 

Пример Название Действие
++$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. Читаем и задаем вопросы по непонятным моментам. Если вопросы будут интересными и объемными — напишу отдельный пост с примерами.






Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *