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";
?>
Т.е. трябва да използвате кръглите скоби по начина, по който те се ползват за решаване на задачи със скоби.
Ако два или повече оператора имат един и същ приоритет, едва в такъв случай те се изпълняват отляво надясно според мястото си в кода.