Codecourse

Operatorlar

Redaktə edilib:

Operatorun prioriteti

PHP ifadəsində bir neçə operatordan istifadə edildikdə onların icra ardıcıllığı prioritet vasitəsilə müəyyənləşdirilir.

1 + 5 * 3 ifadəsi ekrana 18 deyil, 16 çıxaracaq, çünki vurma (*) operatorunun prioriteti toplama (+) operatoru ilə müqayisədə daha yüksəkdir. Dairəvi mötərizələr cütlüyü operatorların icra ardıcıllığını dəyişmək məqsədilə istifadə oluna bilər. Məsələn, (1 + 5) * 3 ifadəsi ekrana 18 çıxaracaq.

Operatorların prioriteti eyni olduqda, onların ifadədə sağdan sola, yaxud soldan sağa icra edilməsi assosiativlik ilə müəyyənləşdirilir. Məsələn, çıxma (-) sol assosiativ operatordur, ona görə 1 - 2 - 3 ifadəsi (1 - 2) - 3 kimi qruplaşdırılır və ekrana -4 çıxarılır. Mənimsətmə (=) isə sağ assosiativ operatordur və ona görə $a = $b = $a ifadəsi $a = ($b = $c) kimi qruplaşdırılır.

Aşağıdakı cədvəldə göstərilmiş operatorların siyahısı onların prioriteti üzrə sıralanıb. Prioriteti daha yüksək olan operatorlar cədvəlin yuxarı hissəsində, aşağı olanlar isə aşağı hissəsində yerləşir.

Operatorların icra ardıcıllığı
Assosiativlik Operator
Sağ ++ -- ~ (int) (float) (string) (array) (object) (bool) @
Sağ !
Sol * / %
Sol + - .
Assosiativ deyil < <= > >=
Assosiativ deyil == != === !== <>
Sol &
Sol &&
Sol ||
Sağ ??
Sol ?:
Sağ = += -= *= **= /= .= %= &=
Sol and
Sol or
<?php
$b = 5;
$a = $b -= 4;
echo 'a = ' .$a.' b = ' .$b; // a = 1 b = 1
?>

Riyazi operatorlar

Məktəbdə keçirilən riyaziyyat fənninin əsaslarını xatırlayırsınız? Aşağıdakı operatorlar da eynilə işləyir.

Operator Əməliyyat Nəticə
+ Toplama İki operandın cəmi
- Çıxma İki operandın fərqi
* Vurma İki operandın hasili
/ Bölmə İki operandın nisbəti
% Modul Birinci operandın ikinciyə bölünməsindən sonra qalan qalıq
** Qüvvətə yüksəltmə PHP 5.6-da daxil edilib.

Modul əməliyyatı zamanı operandlar tam ədədə konvertasiya olunur.

<?php
echo (5 + 4).  '<br>' .PHP_EOL;
echo (5 - 4).  '<br>' .PHP_EOL;
echo (5 * 4).  '<br>' .PHP_EOL;
echo (5 / 4).  '<br>' .PHP_EOL;
echo (5 % 4).  '<br>' .PHP_EOL;
echo (5 ** 4). '<br>' .PHP_EOL;
?>

Nəticə:

9
1
20
1.25
1
625

Mənimsətmə operatoru

Mənimsətmə operatoru = işarəsi kimi göstərilir. Bu operator onu bildirir ki, soldakı operanda sağdakı ifadənin qiyməti mənimsədilir.

<?php
$fruit = "apple"; // fruit dəyişəninə apple qiyməti mənimsədilir
?>

Mənimsətmə operatorunun prioriteti çox aşağıdır. Buna görə $x = 2 * 2 + 1 ifadəsində birinci növbədə riyazi əməliyyatlar (onların prioriteti yüksəkdir), sonra mənimsətmə icra olunur.

<?php
$x = 2 * 2 + 1;
echo $x; // 5
?>

Bir ifadəni eyni anda bir neçə dəyişənə mənimsətmək mümkündür.

<?php
$n = $m = $p = 3 * 5;
echo $n. '<br>' .PHP_EOL;     // 15
echo $m. '<br>' .PHP_EOL;     // 15
echo $p. '<br>' .PHP_EOL;     // 15
?>

İnkrement və dekrement operatorları

PHP proqramlaşdırma dilində $a += 1$b -= 1 tipli ifadələrdən geniş istifadə edilməsilə əlaqədar inkrement (artırma) və dekrement (azaltma) operatorları tətbiq olunur.

İnkrement/dekrement operatorları yalnız sətir və ədədlərlə işləyir, massiv, obyekt və resurslar dəstəklənmir. NULL qiymətinin dekrementi ekrana heç nə çıxarmayacaq, inkrementi isə 1-ə bərabərdir.

İnkrement və dekrement operatorları
Nümunə Adı Nəticə
++$a Öncədən artırma $a dəyişəninin qiymətini 1 vahid artırır, sonra dəyişənin qiymətini geri qaytarır.
$a++ Sonradan artırma $a dəyişəninin qiymətini geri qaytarır, sonra dəyişənin qiymətini 1 vahid artırır.
--$a Öncədən azaltma $a dəyişəninin qiymətini 1 vahid azaldır, sonra dəyişənin qiymətini geri qaytarır.
$a-- Sonradan azaltma $a dəyişəninin qiymətini geri qaytarır, sonra dəyişənin qiymətini 1 vahid azaldır.

Sətir operatorları

109 baxış

Şərhlər: