Ở bài trước chúng ta đã tìm hiểu các kiểu dữ liệu trong học lập trình PHP. Vậy thì trong bài này chúng ta sẽ đi vào sâu hơn trong học lập trình PHP, đó là toán tử và biểu thức trong php.

Bài 04: Toán tử và biểu thức trong php

Nội dung như sau:

  • Biểu thức là gì ?.
  • Toán tử quan hệ (Relational Operators).
  • Toán tử luận lý (Logical Operators).
  • Độ ưu tiên các toán tử

Nội dung chính

  • 1. Biểu thức là gì?
    • Toán tử gán (Assignment Operator)
    • Biểu thức số học
  • 2. Toán tử quan hệ
  • 3. Toán tử luận lý
    • Độ ư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ử. Trong học lập trình PHP thì 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 thực hiện trên nó. Ví dụ $a + $b thì $a và $b thì được gọi là toán hạng. dấu + 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 luôn 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ụ:

Toán tử gán (Assignment Operator):

Đó là toán tử thông dụng nhất trong mọi ngôn ngữ. Chúng ta dùng dấu = để gán giá trị cho một biến bất kỳ nào đó.

Biểu thức số học

Tất các phép toán thường được thực hiện theo một thứ tự cụ thể. Được gọi là độ ưu tiên để đưa ra giá trị cuối cùng (sẽ đề cập đến sau) và 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.

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 số và biến số như thế nào chúng ta đã đề cập ở Biến Và Hằng Số Trong PHP.

2. Toán tử quan hệ

Trong học lập trình PHP 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. Chúng ta 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ư bài trước tôi đã đề cập về 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. Để có thể 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 này mô tả ý nghĩa của các toán tử quan hệ.

Lưu Ý: Tất 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ụ:

ảnh minh họa

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ị, 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 hoặc 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 nà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ý 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ụ:

Độ ưu tiên toán tử luận lý

Được ưu tiên theo thứ tự như sau: NOT -> AND -> OR.

1: 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.Vì vậy 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.

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). Xét 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.

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. Vì vậy 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 một biểu thức. Tóm lại độ ưu tiên trong PHP đề cập đến theo 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 độ đi từ trên xuống dưới. Tính toán biểu thức số học sẽ 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. (Ví dụ trong tính toán thường thì nhân chia trước, cộng trừ sau ưu tiên trong ngoặc).

Ví dụ: $t = -8 * 4 – 3.

1:      tính -8 trước vì đây là toán tử một ngôi cố độ ưu tiên cao nhất. Kết quả = -8.
2:     -8 *4 vì phép nhân có độ ưu tiên cao hơn phép -. Kết quả = -32.
3:     -32 – 3: đây là phép cuối cùng.chúng ta Ko cần phải so sánh với phép tính khác nữa. Kết quả = -35.

5. Lời kết

Trong bài học này các bạn được tìm hiểu các toán tử và biểu thức trong php, trong học lập trình PHP nó là các kiểu logic căn bản trong ngôn ngữ lập trình.

Nó là tiền đề để chúng ta viết những biểu thức phức tạp trong quá trình làm dự án. Nếu chúng ta nắm vững phần này thì tư duy các bạn sẽ lên rất cao, gặp vấn đề là có ý tưởng giải quyết ngay.

Trong bài tới chúng ta sẽ tìm hiểu câu lệnh if else trong php.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.