Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
модуль пхп.doc
Скачиваний:
10
Добавлен:
29.08.2019
Размер:
713.22 Кб
Скачать

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

Базовый оператор присвоения обозначается как =. На первый взгляд может показаться, что это оператор "равно". На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения, (т.е. устанавливается результирующим значением).

Результатом выполнения оператора присвоения является само присвоенное значение. Таким образом, результат выполнения $a = 3 будет равен 3. Это позволяет использовать конструкции вида:

<?php $a = ($b = 4) + 5; // результат: $a установлена значением 9, переменной $b присвоено 4. ?>

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

<?php $a = 3; $a += 5; // устанавливает $a значением 8, аналогично записи: $a = $a + 5; $b = "Hello "; $b .= "There!"; // устанавливает $b строкой "Hello There!",  как и $b = $b . "There!"; ?>

Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных на другой никак не отражаются. Начиная с PHP 4, также поддерживается присваивание по ссылке, используя синтаксис $var = &$othervar; 'Присвоение по ссылке' означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит. Подробно о ссылках вы можете узнать здесь.

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

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

Это в своем роде уникальные операции, потому что независимо от типов своих аргументов они всегда возвращают одно из двух: false или true. Операции сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true, а если нет — false.

В PHP разрешается сравнивать только скалярные переменные. Массивы и объекты в PHP сравнивать нельзя. Их даже нельзя сравнивать на равенство (при помощи оператора ==), но при выполнении такой операции PHP не выдает предупреждения. Так что удивившись как-то раз, почему два совершенно разных массива при сравнении их с помощью == оказываются вдруг одинаковыми, вспомните, что перед сравнением оба операнда преобразуются в слово array, которое потом и сравнивается.

Подробно о сравнении массивов смотрите здесь.

Также вам возможно будет интересно ознакомиться с разделом сравнение типов, в котором приведено большое количество соответствующих примеров.

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

Пример

Название

Результат

$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     var_dump(0 == "a"); // 0 == 0 -> true     var_dump("1" == "01"); // 1 == 1 -> true           switch ("a") {     case 0:         echo "0";         break;     case "a": // Эта ветка никогда не будет достигнута, так как "a" уже сопоставленно с 0         echo "a";         break;     }  ?>

Еще одним условным оператором является тернарный оператор "?":

<?php // Пример использования тернарного оператора $action = (empty($_POST['action'])) ? 'default' : $_POST['action']; // Приведенный выше код аналогичен следующему блоку с использованием if/else if (empty($_POST['action'])) {      $action = 'default'; } else {      $action = $_POST['action']; } ?>

Выражение (expr1) ? (expr2) : (expr3) интерпретируется как expr2, если expr1 вычисляется в TRUE, или как expr3 еслиexpr1 вычисляется в FALSE.