- Оператор присваивания в php
- Присваивание по ссылке
- Операторы арифметического присваивания
- Операторы побитового присваивания
- Другие операторы присваивания
- Смотрите также
- PHP: операторы
- Арифметические операторы
- Операторы присваивания
- Операторы инкремента
- Строковые операторы
- Логические операторы
- Оператор присваивания
- Присваивание по ссылке
Оператор присваивания в php
Базовый оператор присваивания обозначается как «=». На первый взгляд может показаться, что это оператор «равно». На самом деле это не так. В действительности оператор присваивания означает, что левый операнд получает значение правого выражения, (то есть устанавливается значением).
Результатом выполнения оператора присваивания является само присвоенное значение. Таким образом, результат выполнения » $a = 3 » будет равен 3. Это позволяет делать трюки наподобие:
$a = ( $b = 4 ) + 5 ; // $a теперь равно 9, а $b было присвоено 4.
В дополнение к базовому оператору присваивания имеются «комбинированные операторы» для всех бинарных арифметических операций, операций объединения массивов и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:
$a = 3 ;
$a += 5 ; // устанавливает $a в 8, как если бы мы написали: $a = $a + 5;
$b = «Привет» ;
$b .= «-привет!» ; // устанавливает $b в «Привет-привет!», как и $b = $b . «-привет!»;
Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных никак не отразятся на другой. Это также следует учитывать, если вам надо скопировать что-то типа большого массива в длинном цикле.
Исключением из обычного для PHP способа присваивания по значению являются объекты ( object ), которые присваиваются по ссылке. Принудительно скопировать объекты по значению можно с помощью специального ключевого слова clone.
Присваивание по ссылке
Присваивание по ссылке также поддерживается, для него используется синтаксис $var = &$othervar; . Присваивание по ссылке означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит.
Пример #1 Присваивание по ссылке
print » $a \n» ; // печатает 3
print » $b \n» ; // печатает 3
print » $a \n» ; // печатает 4
print » $b \n» ; // также печатает 4, так как $b является ссылкой на $a,
// а значение переменной $a успело измениться
?>
Оператор new автоматически возвращает ссылку, так как присвоение результата операции new по ссылке является ошибкой.
Результат выполнения данного примера:
Parse error: syntax error, unexpected 'new' (T_NEW) in …
Для получения более полной информации о ссылках и их возможностях обратитесь к разделу Подробно о ссылках.
Операторы арифметического присваивания
Пример | Эквивалент | Операция |
---|---|---|
$a += $b | $a = $a + b | Сложение |
$a -= $b | $a = $a — $b | Вычитание |
$a *= $b | $a = $a * $b | Умножение |
$a /= $b | $a = $a / $b | Деление |
$a %= $b | $a = $a % $b | Модуль |
Операторы побитового присваивания
Пример | Эквивалент | Операция |
---|---|---|
$a &= $b | $a = $a & $b | Побитовое И |
$a |= $b | $a = $a | $b | Побитовое ИЛИ |
$a ^= $b | $a = $a ^ $b | Побитовое исключающее ИЛИ (Xor) |
$a | $a = $a | Побитовый сдвиг влево |
$a >>= $b | $a = $a >> $b | Побитовый сдвиг вправо |
Другие операторы присваивания
Смотрите также
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 — это знак равенства (=). Данный оператор присваивает в переменную слева значение, которое находится справа.
Также в PHP существую очень удобные сокращения арифметических операций с операторами присваивания.
Сокращение | Расшифровка |
---|---|
$a += $b | $a = $a + $b |
$a -= $b | $a = $a — $b |
$a *= $b | $a = $a * $b |
$a /= $b | $a = $a / $b |
$a %= $b | $a = $a % $b |
Операторы инкремента
Удобны тем, что позволяют записывать сокращенно очень часто выполняемые арифметические действия: увеличение, либо уменьшение на единицу числа.
Сокращение | Расшифровка |
---|---|
$a++ | увеличивает $a на единицу |
$a— | уменьшает $a на единицу |
Строковые операторы
По аналогии с числами очень часто необходимо складывать (соединять) строки. Для этого используется оператор точка (.). Он также имеет сокращенную запись.
"; $a .= $b; echo ($a); //Выведет "Превед, медвед!медвед!" ?>
Логические операторы
Логические опреаторы созданы для того, чтобы управлять условиями (об этом мы с вами поговорим немного попозже). Результатом выполнения данных операторов является либо true, либо false. Но для справки всё же ознакомьтесь:
Пример | Название | Результат |
---|---|---|
$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. |
Понравилась или помогла статья? Самое лучшее, что ты можешь сделать — это поделиться ею в любой из своих соцсетей (даже если ты поделишься в твиттере или google+, которыми ты не пользуешься — это очень поможет развитию моего блога). Спасибо! А если ты еще и оставишь любой комментарий снизу в обсуждениях, то это будет двойное СПАСИБО!
Ссылка на статью на всякий случай:
Крутов Герман © 2009-2023 krutovgerman2007@ya.ru Я ВКонтате
Оператор присваивания
Базовый оператор присваивания обозначается как «=». На первый взгляд может показаться, что это оператор «равно». На самом деле это не так. В действительности, оператор присваивания означает, что левый операнд получает значение правого выражения, (т.е. устанавливается значением).
Результатом выполнения оператора присваивания является само присвоенное значение. Таким образом, результат выполнения «$a = 3» будет равен 3. Это позволяет делать трюки наподобие:
$a = ( $b = 4 ) + 5 ; // $a теперь равно 9, а $b было присвоено 4.
Для массивов ( array ), присвоение значения именованному ключу происходит с помощью оператора «=>». Приоритет этого оператора такой же, как и у остальных операторов присваивания.
В дополнение к базовому оператору присваивания имеются «комбинированные операторы» для всех бинарных арифметическихопераций, операций объединения массивов и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:
$a = 3 ;
$a += 5 ; // устанавливает $a в 8, как если бы мы написали: $a = $a + 5;
$b = «Hello » ;
$b .= «There!» ; // устанавливает $b в «Hello There!», как и $b = $b . «There!»;
Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных никак не отразятся на другой. Это также следует учитывать, если вам надо скопировать что-то типа большого массива в длинном цикле.
Исключением из обычного для PHP способа присваивания по значению являются объекты ( object ), которые, начиная с версии PHP 5, присваиваются по ссылке. Принудительно скопировать объекты по значению можно с помощью специального ключевого слова clone.
Присваивание по ссылке
Присваивание по ссылке также поддерживается, для него используется синтаксис $var = &$othervar; . ‘Присваивание по ссылке’ означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит.
Пример #1 Присваивание по ссылке
print » $a \n» ; // печатает 3
print » $b \n» ; // печатает 3
print » $a \n» ; // печатает 4
print » $b \n» ; // также печатает 4, так как $b является ссылкой на $a,
// а значение переменной $a успело измениться
?>
Начиная с версии PHP 5, оператор new автоматически возвращает ссылку, поэтому присваивание результата операции new по ссылке начиная с версии PHP 5.3 генерирует ошибку уровня E_DEPRECATED , а в более ранних версиях — ошибку уровня E_STRICT .
Например, следующий код выдаст предупреждение:
/* Следующая строка сгенерирует следующее сообщение об ошибке:
* Deprecated: Assigning the return value of new by reference is deprecated in.
* (Устаревший код: Присвоение результата работы new по ссылке устарело в. )
*/
$o = &new C ;
?>
Для получения более полной информации о ссылках и их возможностях обратитесь к разделу Подробно о ссылках.