Biểu thức là một tổ hợp các toán hạng và toán tử. Toán tử thực hiện các thao tác như cộng, trừ, nhân, chia, so sánh, … Toán hạng là những biến hay là những giá trị mà các phép toán được thực hiện trên nó. Ví dụ a + b thì a và b được gọi là toán hạng, dấu + được gọi là toán tử, cả 2 kết hợp lại thành một biểu thức (a + b).
Trang 1Toán t và bi u th c trong php ử ể ứ
N i dung chính ộ
• 1 Bi u th c là gì?ể ứ
o Toán t gán (Assignment Operator):ử
o Bi u th c s h cể ứ ố ọ
• 2 Toán t quan hử ệ
• 3 Toán t lu n lýử ậ
o Độ ư u tiên toán t lu n lýử ậ
• 4 Độ ư u tiên các toán tử
• 5 L i k tờ ế
1 Bi u th c là gì? ể ứ
Bi u th c là m t t h p các toán h ng và toán t Toán t th c hi n các thao tác nh c ng, tr , ể ứ ộ ổ ợ ạ ử ử ự ệ ư ộ ừ
nhân, chia, so sánh, … Toán h ng là nh ng bi n hay là nh ng giá tr mà các phép toán ạ ữ ế ữ ị được th c ự
hi n trên nó Ví dệ ụ$a + $b thì $a và $bđược g i là toán h ng, d uọ ạ ấ +được g i là toán t , c 2 k t ọ ử ả ế
h p l i thành m t bi u th cợ ạ ộ ể ứ ($a + $b)
M i bi u th c ch có m t giá tr nh t nh Ví d ta có bi u th cỗ ể ứ ỉ ộ ị ấ đị ụ ể ứ ($a + $b) thì bi u th c này có giá tr ể ứ ị
là t ng c aổ ủ $a và $b
Ví d :ụ
1
2
3
$ketqua = $a - $b;
$ketqua = 7 + 6;
$ketqua = 3*$x + 4*$y;
Toán t gán (Assignment Operator): ử
ây là toán t thông d ng nh t trong m i ngôn ng , ta dùng d u = gán giá tr cho m t bi n b t k
nào ó.đ
1 $a = 12;
Nhi u bi n có th ề ế ể được gán cùng m t giá tr qua m t câu l nh ộ ị ộ ệ đơn g i là gán liên ti p.ọ ế
Trang 21 $a = $b = $c = $d = 12;
Bi u th c s h c ể ứ ố ọ
Các phép toán thường được th c hi n theo m t th t c th g i là ự ệ ộ ứ ự ụ ể ọ độ ư u tiên để đưa ra giá tr cu i ị ố
cùng (s ẽ đề ậ đế c p n sau) Các bi u th c s h c trong các ngôn ng ể ứ ố ọ ữ được th hi n b ng cách s ể ệ ằ ử
d ng các toán t s h c cùng v i các toán h ng d ng s ho c ký t (bi n) Nh ng bi u th c này ụ ử ố ọ ớ ạ ạ ố ặ ự ế ữ ể ứ
g i là bi u th c s h c.ọ ể ứ ố ọ
1
2
3
$ketqua = $a + $b/2;
$ketqua = $a / 7;
$ketqua = $a + ($b = 5 + 6);
Nh ta th y trên toán h ng có th là h ng, bi n hay k t h p c 2, và m i bi u th c có th k t h p ư ấ ạ ể ằ ế ế ợ ả ỗ ể ứ ể ế ợ
c a nhi u bi u th c con nh ngh a h ng và bi n nh th nào chúng ta ã ủ ề ể ứ Đị ĩ ằ ế ư ế đ đề ậ ở c p Bi n Và H ng ế ằ
S Trong PHP.ố
2 Toán t quan h ử ệ
Toán t quan h c ng là m t nh ngh a trong bài toán t và bi u th c trong php, ử ệ ũ ộ đị ĩ ử ể ứ được dùng để
ki m tra m i quan h gi a hai bi n hay gi a m t bi n và m t h ng s Ví d ki m tra 2 ể ố ệ ữ ế ữ ộ ế ộ ằ ố ụ ể
bi nế $a và $b xem bi n nào l n h n ta làm nh sau:ế ớ ơ ư ($a > $b) và k t qu c a bi u th c này s tr ế ả ủ ể ứ ẽ ả
v ki u boolean TRUE ho c FALSE.ề ể ặ
Nh tôi ã ư đ đề ậ ở c p bài các ki u d li u trong phpể ữ ệ , ki u boolean có giá tr là FALSE cho t t c các ể ị ấ ả
giá tr b ng 0, ký t r ng ho c null ị ằ ự ỗ ặ Để so sánh 2 toán h ng ta làm nh sauạ ư ($a == $b) Các b n l u ạ ư
ý r ng phép toán mà có 1 d u b ng là phép gán, còn 2 d u b ng là phép so sánh.ằ ấ ằ ấ ằ
B ng sau ây mô t ý ngh a c a các toán t quan h ả đ ả ĩ ủ ử ệ
L u Ý: T t c các toán t quan h nào có 2 ký t tr lên ư ấ ả ử ệ ự ở đều ph i ghi li n không ả ề được có kho ng ả
tr ng Ví d ! =ắ ụ là sai vì có kho ng tr ng gi a 2 ký t ả ắ ữ ự
Ví d :ụ
Trang 32
3
4
5
$a = 12; // Biến $a kiểu INT có giá trị = 12
$t = ($a == 12); // Biến $t có giá trị là TRUE vì biểu thức (12 == 12) đúng
$t = ($a > 12); // Biến $t có giá trị là FALSE vì biểu thức (12 > 12) sai
$t = ($a >= 12); // Biến $t có giá trị TRUE vief biểu thức (12 >= 12) đúng
$t = ($a != 12); // Biến $t có giá trị FALSE vì biểu thức (12 != 12) sai
Toán T Quan Hử ệ=== dùng để so sánh giá tr gi a các bi n và h ng úng theo giá tr và ki u d ị ữ ế ằ đ ị ể ữ
li u c a nó, n u ta s d ng 2 d u b ngệ ủ ế ử ụ ấ ằ ==để so sánh($a == $b) thì lúc này $a và $b ch so sánh ỉ
giá tr và tr v true n uị ả ề ế $a b ngằ $b
Gi sả ử$a = ’123′ là ki u string,ể $b = 123 là ki u int thì phépể ($a == $b) cho k t qu là true, còn ế ả
phép ($a === $b) s cho k t qu là false vì 2 bi n tuy giá tr b ng nhau nh ng không cùng ki u d ẽ ế ả ế ị ằ ư ể ữ
li u.ệ
3 Toán t lu n lý ử ậ
Toán t lu n lý là ký hi u dùng ử ậ ệ để ế k t h p hay ph nh bi u th c có ch a các toán t quan h , ợ ủ đị ể ứ ứ ử ệ
nh ng bi u th c dùng toán t lu n lý tr v giá tr TRUE ho c FALSE.ữ ể ứ ử ậ ả ề ị ặ
B ng sau ây mô t các toán t lu n lý trong PHPả đ ả ử ậ
L u ý: T t c các toán t lu n lý nào có 2 ký t tr lên ư ấ ả ử ậ ự ở đều ph i ghi li n không ả ề được có kho ng ả
tr ng Ví dắ ụ| | là sai vì có kho ng tr ng gi a 2 ký t ả ắ ữ ự
Ví d :ụ
1
2
3
4
$a = 100;
$b = 200;
$tong = $a + $b;
$check = ($a < $b) && ($tong > 200);
Trang 4K t qu c a o n mã trên bi nế ả ủ đ ạ ế $check s có giá tr là TRUE vì:ẽ ị
• ($a > $b) <=> (100 < 200) => TRUE
• ($tong > 200) <=> (300 > 200) => TRUE
• $check = (1) && (2) <=> TRUE && TRUE => TRUE
u tiên toán t lu n lý
u tiên theo th t nh sau: NOT -> AND -> OR
Độ ư ứ ự ư
Ví d : Tính ụ độ ư u tiên sau( 7 > 5 && !(-5 > 1) || 10 == 10 ) (1)
Bước 1: trong bi u th cể ứ này có m t phép toán NOT ó làộ đ !(-5 > 1) nên ta tính trước phép này Trong PHP c ng nh các ngôn ng l p trình khác bi u th cũ ư ữ ậ ể ứ !(biểu thức)cùng ý ngh a v i bi u ĩ ớ ể
th cứ (biểu thức) == false nên bi u th c trên ta bi n ể ứ ở ế đổi thành( (-5 > 1 ) == false ) Bi u th c này ể ứ
tr v giá tr TRUE vìả ề ị (-5 > 1) là sai
Bước 2: L y k t qu bấ ế ả ước 1 ta vi t l i bi u th c (1) nh sau:ế ạ ể ứ ư ((7>5) && true || 10 == 10) Theo độ ư u tiên thì ta tính phép AND trướ ức t c là tính((7 > 5) && true) trước Phép tính này tr v TRUE b i ả ề ở
vì (7 > 5) = true suy ra true && true => true
Bước 3: Bước này l y k t qu bấ ế ả ở ước 2 ta ráp vào thì bi u th c (1) nh sau:ể ứ ư (true || 10 == 10) Phép OR s tr v TRUE n u m t trong 2 bi u th c có giá tr true => bi u th c (1) là bi u th c có ẽ ả ề ế ộ ể ứ ị ể ứ ể ứ
giá tr TRUE.ị
4 Độ ư u tiên các toán t ử
u tiên các toán t thi t l p th t u tiên tính toán c a m t bi u th c Tóm l i u tiên trong
Độ ư ử ế ậ ứ ự ư ủ ộ ể ứ ạ độ ư
PHP đề ậ đế c p n th t các phép tính mà PHP s biên d ch trứ ự ẽ ị ước Các toán t và bi u th c trong ử ể ứ
php có s liên h l n nhau, toán t k t h p toán h ng t o thành bi u th c.ự ệ ẫ ử ế ợ ạ ạ ể ứ
B ng th t u tiên c a các toán t s h c.ả ứ ự ư ủ ử ố ọ
Nh ng toán t n m cùng m t hàng có cùng ữ ử ằ ộ độ ư u tiên và c p ấ độ ư u tiên i t trên xu ng dđ ừ ố ưới Vi cệ
tính toán bi u th c s h c s ể ứ ố ọ ẽ được tính toán t trái qua ph i và u tiên trong ngo c trừ ả ư ặ ước k t h p ế ợ
v i ớ độ ư u tiên trong b ng (nh trong tính toán thả ư ường thì nhân chia trước, c ng tr sau u tiên ộ ừ ư
trong ngo c).ặ
Trang 5Ví d :ụ $t = -8 * 4 – 3
Bước 1: tính -8 trước vì ây là oán t m t ngôi c đ ử ộ ố độ ư u tiên cao nh t K t qu = -8ấ ế ả
Bước 2: -8 *4 vì phép nhân có độ ư u tiên cao h n phép - K t qu = -32ơ ế ả
Bước 3: -32 – 3: vì ây là phép cu i cùng, ko c n ph i so sánh v i phép tính khác n a K t qu = đ ố ầ ả ớ ữ ế ả
-35