1. Начало
  2. Уеб сайт
  3. Уеб разработка
  4. PHP за начинаещи
  5. PHP оператори
  6. Оператори в PHP (аритметични, за присвояване)

Оператори в PHP (аритметични, за присвояване)

PHP операторите представляват конструкции на езика, чрез които се извършват различни операции с променливите като аритметични операции (събиране, изваждане, умножение, деление), присвояване на стойности на променливи, сравняване на променливи и пр. Например оператора за присвояване на стойност, който е равенство (=) и оператора за събиране, който е плюс (+).

В PHP съществуват няколко вида оператори. Основните от тях са:

⇒ Оператори в PHP (аритметични, за присвояване)

Оператори за сравнение и логически оператори в PHP

Оператори за инкрементиране и декрементиране в PHP

Аритметични оператори

Аритметични оператори са:

+ събиране
изваждане
* умножение
/ деление
. съединяване на низове /нарича се „конкатенация на низове“/
% деление по модул – резултатът, който се връща, е целочисленият остатък от делението на двете променливи

С първите четири оператора могат да се събират, изваждат и т.н. стойностите на дадени променливи. Например да зададем на променлива $prom1 стойност 100 и на $prom2 стойност 50 и да извършим някаква операция с тях:

<?php
// Пример за събиране
$prom1 = 100;
$prom2 = 50;
$prom1 = $prom1 + $prom2;
echo "$prom1";
?>

Горният код ще върне резултат 150 (100 + 50 = 150), тъй като увеличихме стойността на $prom1 с 50 единици като я събрахме със стойността на $prom2.

Същия резултат ще получим и от операцията:

$prom1 = $prom1 + 50;

При
$prom1 = $prom1 * $prom2;
и при
$prom1 = $prom1 * 50;
резултатът ще е 5000 (умножение 100 по 50) и т.н.

По-особен е операторът за съединяване (конкатениране) на низове, който е точка (.). Той не извършва пресмятане, а просто съединява двете стойности, така че ако напишем

$prom1 = $prom1 . $prom2;
резултатът ще бъде 10050, т.е. „снаждане“ на 100 с 50.

Кодът:
$prom1 = $prom1 % $prom2;
ще върне резултат нула, тъй като това е целочисления остатък при делене 100 на 50.

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

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

= присвояване на стойност
+= едновременно сбор и присвояване на стойност
-= едновременно изваждане и присвояване на стойност
*= едновременно умножение и присвояване на стойност
/= едновременно деление и присвояване на стойност
.= едновременно конкатениране и присвояване на стойност
%= едновременно деление по модул и присвояване на стойност

Вече познавате оператора за присвояване на стойност (=). Той има няколко разновидности, които позволяват да се извърши някаква аритметична операция и едновременно с това новата стойност да се присвои на дадена променлива. Нека да зададем отново на променливата $prom1 стойност 100 и да извършим следната операция:

<?php
// Пример за едновременно събиране и присвояване на стойност
$prom1 = 100;
$prom1 += 50;
echo "$prom1";
?>

Резултатът от горния код ще бъде 150, тъй като с операцията $prom1 += 50; увеличаваме стойността на променливата $prom1 с 50 единици, така че тя става 150 и едновременно с това присвояваме новата стойност на $prom1. Този код е напълно аналогичен на кода:

$prom1 = $prom1 + $prom2;

където $prom2 е със стойност 50 или на операцията:

$prom1 = $prom1 + 50;

Съответно операцията:

$prom1 *= 50;

ще ни даде резултат 5000 и е напълно аналогична с:

$prom1 = $prom1 * $prom2; // Където $prom2 е 50

или

$prom1 = $prom1 * 50;

и т.н.

Приоритет на оператори

Тук трябва да споменем за една важна особеност на операторите – всички оператори имат предварително определен приоритет на изпълнение. Това означава, че независимо в какъв ред подредите няколко оператора, те ще се изпълнят не според това кой от тях сте написали по-напред (по-вляво в кода), а според приоритета си. Например операторите за умножение и деление имат по-висок приоритет на изпълнение от операторите за събиране и изваждане. Нека да напишем следния код:

<?php
$izchislenie = 100 - 50 * 20;
echo "Резултатът от изчислението е $izchislenie";
?>

При този случай по-напред (по-вляво) е зададен операторът за изваждане (-), а след него е операторът за умножение (*). Ако изпълнението на кода следваше тази логика, тогава резултатът би трябвало да бъде 1000, тъй като 100 минус 50 е 50, умножено по 20 е 1000. Резултатът от този код обаче ще бъде -900, защото пръв по приоритет е операторът за умножение, т.е. първото действие е 50 по 20, което е 1000, а след това е изваждането 100 минус 1000, което е -900. Ако желаете да получите резултата 1000, трябва да напишете кода в следния вид:

<?php
$izchislenie = (100 - 50) * 20;
echo "Резултатът от изчислението е $izchislenie";
?>

Т.е. трябва да използвате кръглите скоби по начина, по който те се ползват за решаване на задачи със скоби.

Ако два или повече оператора имат един и същ приоритет, едва в такъв случай те се изпълняват отляво надясно според мястото си в кода.

Обновена: 02.04.2022
Беше ли Ви полезна тази статия?

Вижте още