Побитовые или бинарные операции




Данные операторы предназначены для установки или снятия групп битов целочисленной переменной. Ведь любое число - это просто последовательность бит. Целые числа в PHP - 32-битные.

Для представления одного числа используются 32 бита:

  • 0000 0000 0000 0000 0000 0000 0000 0000 - это ноль;
  • 0000 0000 0000 0000 0000 0000 0000 0001 - это 1;
  • 0000 0000 0000 0000 0000 0000 0000 0010 - это 2;
  • 0000 0000 0000 0000 0000 0000 0000 0011 - это 3;
  • 0000 0000 0000 0000 0000 0000 0000 0100 - это 4;
  • 0000 0000 0000 0000 0000 0000 0000 0101 - это 5;
  • ...
  • 0000 0000 0000 0000 0000 0000 0000 1111 - это 15;
  • ...

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

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

Что за “разные операции”???


13. Приоритет выполения операторов и ассоциативность.

Https://puzzleweb.ru/php/12_operators.php

Приоритет оператора определяет порядок исполнения операций при вычислении значения выражения.

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

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

  <?php   echo 3 * 2 + 5; // выведет 11 echo 3 * (2 + 5); // выведет 21   ?>

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

Операторы с более высоким уровнем приоритета выполняются в первую очередь:

Приоритет Оператор Порядок выполнения
  (постфикс)++ (постфикс)-- слева направо
  ++(префикс) --(префикс) справа налево
  * / % слева направо
  + - слева направо
  << >> слева направо
  < <= > >= слева направо
  ==!= слева направо
  & слева направо
  ^ слева направо
  | слева направо
  && слева направо
  || слева направо
  = += -= *= /= %= >>= <<== &= ^= |= справа налево

В любом случае, если вы сомневаетесь, или боитесь ошибиться, используйте скобки.

Https://puzzleweb.ru/php/12_operators.php

Ассоциативность

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

Таблица операторов

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

В колонке "Ассоциативность" помечены операторы, которые имеют правую ассоциативность, остальные относятся к левой.

Оператор Описание Ассоциативность
NEW Создает новый объект Справа налево
. [] () Доступ к свойству (точечная нотация) Индекс массива Вызов функции  
! ~ ++, -- +, - (int) (float/double/real) (string) (array) (object) @ Логическое НЕ Битовое НЕ Операторы инкремента и декремента Унарный плюс и минус Оператор приведения типа Оператор приведения типа Оператор приведения типа Оператор приведения типа Оператор приведения типа Подавление вывода сообщений об ошибках Справа налево
*, /, % Умножение, деление  
+, -. Сложение, вычитание Конкатенация  
<<, >> Битовый сдвиг  
<, <=, >, >= Операторы сравнения  
==,!= ===,!==, <> Операторы сравнения  
& Битовое И  
ˆ Битовое ИЛИ-НЕ  
| Битовое ИЛИ  
&& Логическое И  
|| Логическое ИЛИ  
?: Условный (тернарный) оператор  
=, +=, -=, *=, /=,.=, %=, &=, |=, ^=, <<=, >>=, => Операторы присваивания Справа налево
AND Логическое И  
XOR Логическое ИЛИ-НЕ  
OR Логическое ИЛИ  
, Оператор запятая  


14. Условный оператор if...else. Условный оператор switch.

https://www.php.su/learnphp/cs/?co

https://www.php.su/learnphp/cs/?sc


15. Цикл while. Цикл for

https://www.php.su/learnphp/cs/?cycles#while

https://www.php.su/learnphp/cs/?cycles#for


16.Понятие простой и сложный инструкции.

Основные инструкции (или управляющие конструкции - англ. control structure) PHP очень похожи на соответствующие конструкции в ряде других алгоритмических языков. Простыми инструкциями являются операторы присваивания, вызовы методов объектов, операторы инкремента и декремента и т.д. Как и других языках программирования, в PHP можно объединять последовательности инструкций в блоки, получая составную инструкцию. Для этого последовательность инструкций заключается в фигурные скобки. В дальнейшем под инструкцией понимается простая либо составная инструкция.


17. Понятие области видимости и время деление переменных(оператор global).

https://php.net/manual/ru/language.variables.scope.php

https://www.php.su/learnphp/vars/?localvars

https://www.php.su/learnphp/vars/?glvars


18. Объявление функции. Функции, возращающие значение.

https://www.php.su/functions/custom/?1

https://php.net/manual/ru/functions.returning-values.php


19. Передача аргументов и функцию. Вложенные функции и рекурсия.

https://www.php.su/functions/custom/?2


20. Стандартные функции PHP(обзор)

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

https://www.php.su/functions/

https://www.php.su/functions/?page=standard


21. Структура массива. Объявление и инициализация массивов.

https://www.php.su/learnphp/datatypes/?array

https://php.net/manual/ru/language.types.array.php


22. Обход массивов в цикле.

https://php.net/manual/ru/control-structures.foreach.php


23. Массивы, индексируемые строками(ассоциативные массивы)



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-13 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: