
- •Тема 1. Основы рнр
- •1. Описание языка рнр
- •2. Как работает рнр-сценарий
- •3. Программное обеспечение.
- •3. Базовый синтаксис рнр
- •4. Операторы
- •5. Комментарии
- •6. Переменные
- •7. Внешние переменные
- •8. Типы данных
- •9. Операция присваивания
- •10. Операции над числами
- •11. Операции сравнения
- •12. Логические операции
- •13. Строковые операции
- •14. Приоритет выполнения операций
12. Логические операции
Таблица 1.3. Логические операции
Пример |
Имя |
Результат |
$a and $b |
And |
TRUE, если и $a, и $b TRUE. |
$a or $b |
Or |
TRUE, если $a или $b TRUE. |
$a xor $b |
Xor |
TRUE, если $a или $b TRUE, но не оба. |
! $a |
Not |
TRUE, если $a не TRUE. |
$a && $b |
And |
TRUE, если и $a, и $b TRUE. |
$a || $b |
Or |
TRUE, если $a или $b TRUE. |
Смысл двух вариантов «and» и «or» в том, что они работают с различными приоритетами.
13. Строковые операции
Имеются две строковые операции. Первая - операция конкатенации «.», которая возвращает объединение из правого и левого аргументов. Вторая - операция присвоения «.=», которая присоединяет правый аргумент в левому аргументу.
Листинг 1.16. Строковые операции
<?php
$a = "Hello ";
$b = $a . "World!";
echo $b; // теперь $b содержит "Hello World!"
$a = "Hello ";
$a .= "World!";
echo $a; // теперь $a содержит "Hello World!"
?>
14. Приоритет выполнения операций
Приоритет операции специфицирует, какая операция выполняется первой. Например, в выражении 1+5*3 результат будет 16, а не 18, поскольку умножение «*» имеет более высокий приоритет, чем сложение «+». Скобки можно использовать для переопределения приоритетов выполнения, если это необходимо. Например: (1+5)*3 вычисляется в 18.
В следующей таблице дан список приоритетов операций от низшего к высшему.
Таблица 1.4. Приоритет выполнения операций
Ассоциативность |
Операции |
левая |
, |
левая |
or |
левая |
xor |
левая |
and |
правая |
|
левая |
= += -= *= /= .= %= &= |= ^= ~= <<= >>= |
левая |
? : |
левая |
|| |
левая |
&& |
левая |
| |
левая |
^ |
левая |
& |
не ассоциативная |
== != === !== |
не ассоциативная |
< <= > >= |
левая |
<< >> |
левая |
+ - . |
левая |
* / % |
правая |
! ~ ++ -- (int) (float) (string) (array) (object) @ |
правая |
[ |
не ассоциативная |
new |