Операторы PHP
Оператор — это элемент программного кода, который описывает то или иное действие в выражении. Они позволяют выполнить определенные действия с данными. Условные операторы позволяют в зависимости от значения логического выражения выполнить отдельный участок программы или, наоборот, не выполнять его.
Математические операторы
В PHP доступны все основные математические операции. В качестве операндов можно использовать как целые, так и вещественные числа.
+ | сложение | $a = $b + $e; |
— | вычитание | $a = $b — $e; |
* | умножение | $a = $b * $e; |
/ | деление | $a = $b / $e; |
% | остаток от деления | $a = $b % $e; |
++ | Инкремент. Увеличивает значение переменной на 1; | $a++; // то же что $a+1; |
— — | Декремент. Уменьшает значение переменной на 1; | $a- -; // то же что $a-1; |
Операторы инкремента и декремента можно записывать в постфиксной и префиксной формах:
1 2 |
$a++; $a--; //Постфиксная форма ++$a; --$a; //Префиксная форма |
При постфиксной форме сначала возвращается значение переменной, а потом выполняется операция, а при префиксной форме — вначале осуществляется операция и только потом возвращается значение.
Операторы присваивания
= | присваивает переменной значение | $a=5; |
Логические операторы
Пример | Название | Результат |
---|---|---|
$a and $b | Логическое И | TRUE, если оба операнда имеют значение TRUE. |
$a or $b | Логическое ИЛИ | TRUE, если хотя бы один операнд имеет значение TRUE. |
!$a | Логическое НЕ (Отрицание) | TRUE, если операнд имеет значение FALSE, и FALSE, если операнд имеет значение TRUE. |
$a && $y | Логическое И | TRUE если и $i, и $y TRUE. |
$a || $b | Логическое ИЛИ | TRUE если или $i, или $y TRUE. |
С помощью операторов && и || удобно несколько логических выражений объединить в одно большое.
Оператор конкатенации строк
Оператор . (точка) осуществляет конкатенацию строк, т.е. соединяет их в одну строку.
1 2 3 |
$a = "Hello "; $b = $a . "World!"; echo $b; |
Выведет на экран Hello World!
Оператор «.» всегда воспринимает свои оперенды как строки и возвращает строку.
Операторы сравнения
Операторы сравнения позволяют сравнивать два значения между собой, и если условие выполнено, возвращают true, в противном случае false.
Пример | Название | Результат |
---|---|---|
a == b | Равно | Истина если a равно b |
a != b | Не равно | Истина если a не равно b |
a <> b | Не равно | Истина если a не равно b |
a < b | Меньше | Истина если a строго меньше b |
a > b | Больше | Истина если a строго больше b |
a <= b | Меньше или равно | Истина если a меньше или равно b |
a >= b | Больше или равно | Истина если a больше или равно b |
Обратите внимание, в операторах сравнения на равенство и не равенство PHP интерпретирует один из оперендов как логический, если другой логический исходно.
То есть, принято считать, что константа false является просто синонимом для пустой строки, а true — для единицы.Если вывести данные константы через echo, то мы увдим единицу и пустую строку. Но давайте рассмотрим следующий сценарий:
1 2 3 4 5 |
<? $a=9; if($a==1) echo "a=1"; if($a==true) echo "переменная истинна!"; ?> |
Запустив этот сценарий, вы увидите, что отобразится только вторая строка, что подтверждает вышеописанное правило. Константа true и значение 1 не идентичны. Иначе говоря, сравнивая что-то с true или false явно, мы имеем ввиду логическое сравнение.
Но,существует и другое правило:
1 |
<? if(''==0) echo "нуль это пустота?"?> |
И эта команда выведет сообщение «нуль это пустота?», хотя мы сравниваем пустую строку и нуль, а они не равны в обычном смысле!
Если один из аргументов оператора сравнения числовой, то сравнение всегда выполняется в числовом контексте, даже если второй аргумент не число.
Учитывая эти особенности PHP, лучше при сравнении строк с чем либо, использовать оператор эквивалентности(тройное равенство).
Оператор эквивалентности(тройное равенство)
Оператор эквивалентности === (тройное равенство). Он не только сравнивает два выражения, но также и их типы. Попробуем повторить предыдущий пример с этим оператором:
1 |
<? if(''===0) echo "нуль это пустота?"?> |
Данная команда ничего не выведит, так как нуль и пустота не эквивалентны.