Дар барномасозӣ масъалаи такрор ба такрор афзоиш додани қимати ягон тағйирёбанда зуд-зуд пайдо мешавад. Агар зарур бошад, ки қимати ягон тағйирёбанда ба 1 воҳид зиёд карда шавад, ин амал чунин иҷро карда мешавад:
$counter = $counter + 1;
Шакли мухтасари ин амал низ мавҷуд аст:
$counter += 1;
Оператори += ин омехтаи операторҳои арифметикӣ ва бахшидани қимат аст. Ин оператор масъалаи 1 воҳид зиёд намудани қимати тағйирёбандаи $counter-ро иҷро мекунад. Албатта чунин шакли омехта намуди кодро мураккабтар мегардонад, лекин миқдори кофии машқ ва такроркунӣ барномасозро омӯхта месозад ва имконияти офаридани коди мухтасарро медиҳад.
Оператор | Ном | Мисол | Амали баробарқувва |
---|---|---|---|
+= | Ҷамъ-баробар | $x += 2; | $x = $x + 2; |
-= | Тарҳ-баробар | $x -= 4; | $x = $x - 4; |
*= | Зарб-баробар | $x *= 3; | $x = $x * 3; |
/= | Тақсим-баробар | $x /= 2; | $x = $x / 2; |
%= | Модул-баробар | $x %= 5; | $x = $x % 5; |
.= | Пайвасткунӣ-баробар | $my_str.="hello"; | $my_str = $my_str . "hello"; |
namuna10.php
<?php
$y=7;
$x=5;
echo "<P>x=$x, y=$y, +<br>";
$x=$x+$y;
echo "$x<br>";
$x=5;
echo "x=$x, y=$y<br>";
$x+=$y;
echo "$x<br>";
$x=5;
echo "<P>x=$x, y=$y, -<br>";
$x=$x-$y;
echo "$x<br>";
$x=5;
echo "x=$x, y=$y<br>";
$x-=$y;
echo "$x<br>";
$x=5;
echo "<P>x=$x, y=$y, *<br>";
$x=$x*$y;
echo "$x<br>";
$x=5;
echo "x=$x, y=$y<br>";
$x*=$y;
echo "$x<br>";
$x=5;
echo "<P>x=$x, y=$y, /<br>";
$x=$x/$y;
echo "$x<br>";
$x=5;
echo "x=$x, y=$y<br>";
$x/=$y;
echo "$x<br>";
$x=5;
echo "<P>x=$x, y=$y, %<br>";
$x=$x%$y;
echo "$x<br>";
$x=5;
echo "x=$x, y=$y<<br>";
$x%=$y;
echo "$x<br>";
?>
Барои масъалаи як воҳид зиёд намудани қимати тағйирёбанда ҳалли боз ҳам кӯтоҳтар мавҷуд аст. Барои ба тағйирёбанда 1 воҳид ҷамъ кардан (increment) аз оператори инкремент "++" истифода мебаранд:
$x++;
ки ин баробарқувва аст ба $x += 1;
ё
$x = $x + 1;
Барои аз тағйирёбанда 1 воҳидро тарҳ кардан (decrement) аз оператори декремент "--" истифода мебаранд:
$x--;
ки ин баробарқувва аст ба
$x -= 1;
ё
$x = $x - 1;
Бар замми ин гуфтан зарур аст, ки имконияти аниқ кардани:
- иҷро шудани амали инкремент пеш аз иҷрои сатре, ки дар он ин оператор омадааст (++$x; пре-инкремент)
ё
- иҷро шудани инкремент баъди иҷрои сатре, ки дар он ин оператор омадааст ($x++; пост-инкремент) мавҷуд аст.
Айнан ҳамин хел, имконияти аниқ кардани:
- иҷро шудани амали декремент пеш аз иҷрои сатре, ки дар он ин оператор омадааст (--$x; пре-декремент)
ё
- иҷро шудани декремент баъди иҷрои сатре, ки дар он ин оператор омадааст ($x--; пост-декремент) мавҷуд аст. Фарқи ин амалҳоро кушиш мекунем, ки дар мисоли зерин нишон диҳем:
namuna11.php
<?php
$x = 4;
echo "The value of x with post-plusplus = " . $x++;
$x = 4;
echo "<br />The value of x with with pre-plusplus = " . ++$x;
?>
САВОЛҲО БАРОИ МУСТАҲКАМКУНӢ
1. Барномае нависед, ки дар он операторҳои инкремент ва декремент истифода мешаванд.
2. Мисолеро оред, ки дар он истифодаи оператори пре-инкремент мувофиқи мақсад аст.
3. Мисолеро оред, ки дар он истифодаи оператори пост-декремент мувофиқи мақсад аст.