Hướng dẫn flag in php example - cờ trong ví dụ php

Trong bài này, chúng ta sẽ tìm hiểu kỹ về kiểu dữ liệu boolean trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

Nội dung chính ShowShow

  • 2. Một số hàm trả về kiểu boolean trong PHP
  • 2. Một số hàm trả về kiểu boolean trong PHP
  • Kiểu logic trong PHP
  • Các phép toán logic
  • Các phép toán so sánh, type juggling
  • Phép toán == và ===, != và !==
  • Kết luận

Nội dung chính

  • 2. Một số hàm trả về kiểu boolean trong PHP
  • 2. Một số hàm trả về kiểu boolean trong PHP
  • Kiểu logic trong PHP
  • Các phép toán logic
  • Các phép toán so sánh, type juggling
  • Phép toán == và ===, != và !==
  • Kết luận

Nội dung chínhboolean còn gọi là kiểu luận lý [logic] hoặc kiểu bool. Kiểu dữ liệu boolean chỉ lưu trữ 2 giá trị: TRUE hoặc FALSE. Trong PHP, giá trị truefalse không phân biệt chữ hoa, chữ thường. Chúng ta có thể viết true/TRUE/True hoặc false/FALSE/False đều được.

Kiểu dữ liệu boolean còn gọi là kiểu luận lý [logic] hoặc kiểu bool. Kiểu dữ liệu boolean chỉ lưu trữ 2 giá trị: TRUE hoặc FALSE. Trong PHP, giá trị true và false không phân biệt chữ hoa, chữ thường. Chúng ta có thể viết true/TRUE/True hoặc false/FALSE/False đều được.NULL cũng được coi là FALSE trong boolean. Ngoài NULL, 0 cũng được coi là FALSE trong boolean. Nếu một chuỗi [string] rỗng [empty] thì nó cũng được coi là FALSE trong boolean.


Giá trị kiểu NULL cũng được coi là FALSE trong boolean. Ngoài NULL, 0 cũng được coi là FALSE trong boolean. Nếu một chuỗi [string] rỗng [empty] thì nó cũng được coi là FALSE trong boolean.
bool[true] bool[false] NULL bool[false] bool[false]

Kết quảboolean như sau:

    • Một số giá trị trong PHP tương đương với kiểu dữ liệu boolean như sau:true, số 0 chuyển thành false.
    • Số nguyên khác 0 chuyển thành true, số 0 chuyển thành false.0.0 chuyển thành false, còn lại là true.
    • Số thực bằng 0.0 chuyển thành false, còn lại là true.true, chuỗi rỗng chuyển thành false.
    • Chuỗi [string] khác rỗng [empty] chuyển thành true, chuỗi rỗng chuyển thành false.NULL tương đương với false.
    • Giá trị NULL tương đương với false.false.

2. Một số hàm trả về kiểu boolean trong PHP

Mảng [array] không có phần tử nào tương đương với false.

bool[true] bool[false] NULL bool[false] bool[false]
7 trong PHP giúp kiểm tra giá trị của một biến có phải kiểu bool/boolean hay không. Để chuyển đổi các kiểu dữ liệu khác về bool/boolean, chúng ta có thể sử dụng các hàm ép kiểu [type casting] như [bool], [boolean] hoặc boolval[].


Giá trị kiểu NULL cũng được coi là FALSE trong boolean. Ngoài NULL, 0 cũng được coi là FALSE trong boolean. Nếu một chuỗi [string] rỗng [empty] thì nó cũng được coi là FALSE trong boolean.
Is $x bool? bool[true]
Is $y bool? bool[false]
Is $y existing? bool[true]

Kết quảis_int[], is_double[], is_float[] , is_string[] hoặc hàm kiểm tra sự tồn tại của biến isset[] cũng trả về kiểu boolean.

  • Một số giá trị trong PHP tương đương với kiểu dữ liệu boolean như sau:
  • Số nguyên khác 0 chuyển thành true, số 0 chuyển thành false.
  • Số thực bằng 0.0 chuyển thành false, còn lại là true.
  • Chuỗi [string] khác rỗng [empty] chuyển thành true, chuỗi rỗng chuyển thành false.
  • Giá trị NULL tương đương với false.

Mảng [array] không có phần tử nào tương đương với false.

Trong bài này, chúng ta sẽ tìm hiểu kỹ về kiểu dữ liệu boolean trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

Nội dung chính

  • 2. Một số hàm trả về kiểu boolean trong PHP
  • Kiểu logic trong PHP
  • Các phép toán logic
  • Các phép toán so sánh, type juggling
  • Phép toán == và ===, != và !==
  • Kết luận

Nội dung chínhboolean còn gọi là kiểu luận lý [logic] hoặc kiểu bool. Kiểu dữ liệu boolean chỉ lưu trữ 2 giá trị: TRUE hoặc FALSE. Trong PHP, giá trị truefalse không phân biệt chữ hoa, chữ thường. Chúng ta có thể viết true/TRUE/True hoặc false/FALSE/False đều được.

Kiểu dữ liệu boolean còn gọi là kiểu luận lý [logic] hoặc kiểu bool. Kiểu dữ liệu boolean chỉ lưu trữ 2 giá trị: TRUE hoặc FALSE. Trong PHP, giá trị true và false không phân biệt chữ hoa, chữ thường. Chúng ta có thể viết true/TRUE/True hoặc false/FALSE/False đều được.NULL cũng được coi là FALSE trong boolean. Ngoài NULL, 0 cũng được coi là FALSE trong boolean. Nếu một chuỗi [string] rỗng [empty] thì nó cũng được coi là FALSE trong boolean.


Giá trị kiểu NULL cũng được coi là FALSE trong boolean. Ngoài NULL, 0 cũng được coi là FALSE trong boolean. Nếu một chuỗi [string] rỗng [empty] thì nó cũng được coi là FALSE trong boolean.
bool[true] bool[false] NULL bool[false] bool[false]

Kết quảboolean như sau:

    • Một số giá trị trong PHP tương đương với kiểu dữ liệu boolean như sau:true, số 0 chuyển thành false.
    • Số nguyên khác 0 chuyển thành true, số 0 chuyển thành false.0.0 chuyển thành false, còn lại là true.
    • Số thực bằng 0.0 chuyển thành false, còn lại là true.true, chuỗi rỗng chuyển thành false.
    • Chuỗi [string] khác rỗng [empty] chuyển thành true, chuỗi rỗng chuyển thành false.NULL tương đương với false.
    • Giá trị NULL tương đương với false.false.

2. Một số hàm trả về kiểu boolean trong PHP

Mảng [array] không có phần tử nào tương đương với false.

bool[true] bool[false] NULL bool[false] bool[false]
7 trong PHP giúp kiểm tra giá trị của một biến có phải kiểu bool/boolean hay không. Để chuyển đổi các kiểu dữ liệu khác về bool/boolean, chúng ta có thể sử dụng các hàm ép kiểu [type casting] như [bool], [boolean] hoặc boolval[].


Giá trị kiểu NULL cũng được coi là FALSE trong boolean. Ngoài NULL, 0 cũng được coi là FALSE trong boolean. Nếu một chuỗi [string] rỗng [empty] thì nó cũng được coi là FALSE trong boolean.
Is $x bool? bool[true]
Is $y bool? bool[false]
Is $y existing? bool[true]

Kết quảis_int[], is_double[], is_float[] , is_string[] hoặc hàm kiểm tra sự tồn tại của biến isset[] cũng trả về kiểu boolean.

  • Một số giá trị trong PHP tương đương với kiểu dữ liệu boolean như sau:
  • Số nguyên khác 0 chuyển thành true, số 0 chuyển thành false.
  • Số thực bằng 0.0 chuyển thành false, còn lại là true.
  • Chuỗi [string] khác rỗng [empty] chuyển thành true, chuỗi rỗng chuyển thành false.
  • Giá trị NULL tương đương với false.

Mảng [array] không có phần tử nào tương đương với false.

Hàm

bool[true] bool[false] NULL bool[false] bool[false]
7 trong PHP giúp kiểm tra giá trị của một biến có phải kiểu bool/boolean hay không. Để chuyển đổi các kiểu dữ liệu khác về bool/boolean, chúng ta có thể sử dụng các hàm ép kiểu [type casting] như [bool], [boolean] hoặc boolval[].

Kiểu logic trong PHP

Các hàm kiểm tra kiểu dữ liệu is_int[], is_double[], is_float[] , is_string[] hoặc hàm kiểm tra sự tồn tại của biến isset[] cũng trả về kiểu boolean.

Kiểu logic trong PHP có hai tên gọi: bool và boolean. Tên gọi bool dùng trong chỉ báo kiểu của hàm. Tên gọi boolean được dùng trong giá trị trả về của hàm gettype[]. Trong phép toán chuyển đổi kiểu có thể sử dụng cả [bool] và [boolean].

Giá trị true và false không phân biệt hoa/thường. Nghĩa là bạn viết true/TRUE/True hay false/FALSE/False đều được.

Trong các lệnh xuất dữ liệu với kiểu logic, giá trị true được biểu diễn là 1, còn giá trị false được biểu diễn là một xâu rỗng.

bool[true] bool[false] NULL bool[false] bool[false]
0

PHP thực hiện tự động chuyển đổi từ các giá trị khác về boolean như sau:

  • Số nguyên khác 0 chuyển thành true; Số 0 chuyển thành false.
  • Số thực bằng 0.0 chuyển thành false, còn lại là true.
  • Mọi chuỗi không rỗng chuyển thành true; Chuỗi rỗng “” hoặc ” chuyển thành false.
  • Giá trị NULL tương đương với false.
  • Mảng không có phần tử nào tương đương với false.
  • Một object rỗng [không có giá trị hoặc phương thức nào] tương đương với false.

Với quy tắc chuyển đổi như trên, bạn có thể trực tiếp sử dụng các giá trị khác kiểu bool trong biểu thức logic [ví dụ, cho vòng lặp và cấu trúc rẽ nhánh]. Đây là điều gần giống trong C/C++ nhưng xa lạ hơn với C#.

Để kiểm tra giá trị của một biến có phải kiểu bool/boolean hay không có thể sử dụng hàm is_bool[$var].is_bool[$var].

Để chuyển đổi các kiểu dữ liệu khác về bool/boolean có thể sử dụng các phép chuyển đổi kiểu [type casting] như [bool], [boolean] hoặc sử dụng hàm chuyển đổi boolval[$var].[bool], [boolean] hoặc sử dụng hàm chuyển đổi boolval[$var].

Kiểu boolean là kết quả trả về của các phép toán so sánh của các kiểu số và string mà bạn đã học: so sánh số với số, so sánh chuỗi với chuỗi.

Bạn cũng đã gặp một loạt hàm trả giá trị kiểu boolean:

  • Các hàm kiểm tra kiểu: is_int[], is_double[], is_float[], is_bool[], is_string[].
  • Hàm kiểm tra sự tồn tại của biến: isset[].

Nếu cần tạo ra biểu thức logic phức tạp hơn, PHP cung cấp các phép toán logic.

Các phép toán logic

Đối với dữ liệu kiểu bool, PHP định nghĩa sẵn các phép toán riêng biệt, gọi là các phép toán logic. Các phép toán logic cho phép ghép nối các giá trị logic thành những biểu thức phức tạp.

Giống như trong toán học, PHP định nghĩa sẵn các phép toán logic sau:

Phép logic and cho kết quả true khi và chỉ khi cả hai toán hạng có giá trị true. Trong PHP, phép toán logic and được biểu diễn bằng cụm ký tự

bool[true] bool[false] NULL bool[false] bool[false]
9 hoặc từ khóa

0. Ví dụ:
cho kết quả true khi và chỉ khi cả hai toán hạng có giá trị true. Trong PHP, phép toán logic and được biểu diễn bằng cụm ký tự
bool[true] bool[false] NULL bool[false] bool[false]
9 hoặc từ khóa

0. Ví dụ:

bool[true] bool[false] NULL bool[false] bool[false]
1

Từ khóa trong PHP không phân biệt hoa/thường.

Phép toán logic and trong PHP có đặc điểm: nếu biểu thức bên trái phép toán có giá trị false, PHP sẽ không tính toán biểu thức bên phải dấu phép toán nữa [vì kết quả chắc chắn là false]. Đặc điểm này của phép toán and được gọi là tính đoản mạch [short-circuit].đoản mạch [short-circuit].

Đặc điểm này tạo ra một kỹ thuật đặc biệt trong PHP, gọi là kỹ thuật đoản mạch [short-circuiting].

Ví dụ lệnh


1 vận dụng kỹ thuật này để kiểm soát việc kết nối cơ sở dữ liệu. Nếu $flag là false thì lệnh kết nối [tiêu tốn nhiều tài nguyên] sẽ không được thực hiện nữa. Kỹ thuật đoản mạch này giúp viết lệnh ngắn gọn không cần đến cấu trúc lặp.

Phép toán logic or cho kết quả false chỉ khi cả hai toán hạng cùng có giá trị false. Trong PHP, phép toán logic or được biểu diễn bằng cụm


2 hoặc từ khóa

3. Ví dụ:
cho kết quả false chỉ khi cả hai toán hạng cùng có giá trị false. Trong PHP, phép toán logic or được biểu diễn bằng cụm

2 hoặc từ khóa

3. Ví dụ:

bool[true] bool[false] NULL bool[false] bool[false]
2

Phép toán logic or cũng có tính đoản mạch: nếu biểu thức ở vế trái là true thì không thực hiện vế phái nữa, đồng thời trả luôn kết quả của cả biểu thức là true.

Kỹ thuật này có thể sử dụng, ví dụ, trong việc mở file:


4

Phép toán logic xor trả lại kết quả true nếu chỉ một trong hai toán hạng là true. Phép toán xor còn được gọi là phép or loại trừ. Chỉ khi trạng thái của hai toán hạng khác nhau thì biểu thức nhận giá trị true. trả lại kết quả true nếu chỉ một trong hai toán hạng là true. Phép toán xor còn được gọi là phép or loại trừ. Chỉ khi trạng thái của hai toán hạng khác nhau thì biểu thức nhận giá trị true.

Trong PHP, phép toán xor được biểu diễn bằng từ khóa


5.

bool[true] bool[false] NULL bool[false] bool[false]
3

Phép toán phủ định đảo ngược giá trị của biểu thức logic: true thành false, false thành true. Phép toán phủ định logic trong PHP được biểu diễn bởi ký tự


6. đảo ngược giá trị của biểu thức logic: true thành false, false thành true. Phép toán phủ định logic trong PHP được biểu diễn bởi ký tự

6.

bool[true] bool[false] NULL bool[false] bool[false]
4

Các phép toán so sánh, type juggling

PHP định nghĩa sẵn các phép toán so sánh mà bạn đã gặp:

Ký hiệu phép toánTên gọi
> Lớn hơn
>= Lớn hơn hoặc bằng
< Nhỏ hơn
, >=, loose comparison] hay phép so sánh bằng [equality] thực hiện type juggling trước khi so sánh hai giá trị. Do đó, hai giá trị khác kiểu vẫn có thể cho kết quả true.

So sánh chuỗi, còn gọi là lexicographical order, là một chủ đề phức tạp. Tập tài liệu này sẽ không giải thích chi tiết. Bạn có thể tự tìm hiểu thêm từ wikipedia: //en.wikipedia.org/wiki/Lexicographical_order.

bool[true] bool[false] NULL bool[false] bool[false]
5

Điểm rất đặc biệt của cơ chế type juggling nằm ở chỗ, nếu bạn so sánh hai chuỗi chỉ chứa toàn chữ số, chúng cùng được biến đổi về kiểu số để so sánh chứ không so trực tiếp hai xâu. Nếu cần thực sự so hai chuỗi [chứa toàn chữ số], bạn nên dùng hàm strcmp[].strict comparison] hoặc so sánh đồng nhất [identity], không thực hiện type juggling. Do vậy, nếu hai giá trị khác kiểu thì luôn cho kết quả so sánh là false.

Để so sánh nghiêm ngặt cả về kiểu và giá trị, PHP đưa vào hai phép so sánh riêng của mình: phép toán identity === và not identical !==.
php > $b = ‘1000’;
php > echo $a === $b; // kết quả là false
php >

Phép toán == và ===, != và !==inequality] thực hiện type juggling trước khi so sánh. Trong khi đó phép toán !== [phép toán not identical] không thực hiện type juggling.

bool[true] bool[false] NULL bool[false] bool[false]
6

Qua hai bài học về kiểu số và kiểu string bạn hẳn đã để ý rằng: trong PHP có hai phép toán so sánh bằng, == và ===; hai phép toán so sánh khác, != và !==. Vậy giữa chúng có gì khác nhau?

Phép so sánh khác

7 và

8 thực tế là cùng một phép toán. Có thể sử dụng lối viết nào cũng được. Tuy nhiên lưu ý tính thống nhất trong cách viết.

[1] Phép so sánh ==, gọi là so sánh lỏng [loose comparison] hay phép so sánh bằng [equality] thực hiện type juggling trước khi so sánh hai giá trị. Do đó, hai giá trị khác kiểu vẫn có thể cho kết quả true.

  • Ví dụ, so sánh số 1000 và chuỗi ‘1000’ sẽ cho kết quả true:
  • [2] Phép so sánh ===, gọi là so sánh chặt [strict comparison] hoặc so sánh đồng nhất [identity], không thực hiện type juggling. Do vậy, nếu hai giá trị khác kiểu thì luôn cho kết quả so sánh là false.
  • php > $a = 1000;php > $b = ‘1000’;php > echo $a === $b; // kết quả là falsephp >
  • [3] Tương tự như vậy, phép so sánh khác != hoặc [còn gọi là phép toán inequality] thực hiện type juggling trước khi so sánh. Trong khi đó phép toán !== [phép toán not identical] không thực hiện type juggling.
  • Như vậy, hai phép toán identical [===] và not identical [!==] mới thực sự tương đương với các phép toán == và != trong C.

Kết luậngiúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
+ Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
+ Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
Cảm ơn bạn!

Bài Viết Liên Quan

Chủ Đề