Đảo ngược toán tử logic Php không. Cấu trúc logic AND OR và NOT trong toán tử điều kiện

Hai câu lệnh chính cung cấp cấu trúc phân nhánh có điều kiện là if và switch. Câu lệnh if được sử dụng rộng rãi nhất trong các cấu trúc nhảy có điều kiện. Mặt khác, trong một số trường hợp nhất định, đặc biệt nếu bạn phải điều hướng qua một trong nhiều nhánh tùy thuộc vào giá trị của một biểu thức và việc sử dụng một số câu lệnh if dẫn đến mã phức tạp hơn, câu lệnh switch sẽ trở nên thuận tiện hơn .

Trước khi nghiên cứu các toán tử này, bạn cần hiểu các biểu thức và phép toán logic.

Các phép toán logic

Các phép toán logic cho phép bạn kết hợp các giá trị logic (còn gọi là giá trị chân lý) để tạo ra các giá trị logic mới. Như được hiển thị trong bảng bên dưới, PHP hỗ trợ các toán tử logic tiêu chuẩn (và, hoặc, không và xor), với hai toán tử đầu tiên có phiên bản thay thế.

Các hoạt động logic của PHP
Hoạt động Sự miêu tả
Một phép toán có kết quả đúng khi và chỉ khi cả hai toán hạng của nó đều đúng
hoặc Một phép toán có kết quả đúng nếu một trong các toán hạng của nó (hoặc cả hai toán hạng) là đúng
! Một phép toán có kết quả đúng nếu toán hạng đơn của nó (được đặt ở bên phải dấu phép tính) là sai và sai nếu toán hạng của nó là đúng
xor Một phép toán có kết quả đúng nếu một trong hai toán hạng của nó (nhưng không phải cả hai) đều đúng
&& Tương tự như toán tử and, nhưng liên kết các toán hạng của nó chặt chẽ hơn toán tử này
|| Tương tự như toán tử hoặc, nhưng liên kết các toán hạng của nó chặt chẽ hơn toán tử này

Hoạt động && và || hẳn đã quen thuộc với các lập trình viên C. Vận hành! thường được gọi không phải vì nó trở thành phủ định của toán hạng mà nó được áp dụng.

Để kiểm tra xem cả hai toán hạng có đúng hay không, bạn sử dụng toán tử AND, toán tử này cũng có thể được viết dưới dạng ký hiệu kép (&&). Cả hai toán tử AND và && đều logic, điểm khác biệt duy nhất của chúng là toán tử && có nhiều ưu tiên cao hơn toán tử AND. Điều tương tự cũng áp dụng cho toán tử OR và ||. Toán tử AND chỉ trả về TRUE nếu cả hai toán hạng đều TRUE; nếu không, FALSE được trả về.

Để kiểm tra xem ít nhất một toán hạng có TRUE hay không, bạn sử dụng toán tử OR, toán tử này cũng có thể được viết dưới dạng kép đường thẳng đứng(||). Toán tử này trả về TRUE nếu ít nhất một trong các toán hạng của nó là TRUE.

Khi sử dụng toán tử OR trong một chương trình, các lỗi logic khó phát hiện có thể xuất hiện. Nếu PHP phát hiện toán hạng đầu tiên là TRUE, nó sẽ không đánh giá giá trị của toán hạng thứ hai. Điều này giúp tiết kiệm thời gian thực thi, nhưng bạn phải cẩn thận để đảm bảo rằng mã nó phụ thuộc vào làm việc đúng chương trình không được đặt trong toán hạng thứ hai.

Toán tử XOR cho phép bạn kiểm tra xem chỉ một trong các toán hạng (chứ không phải cả hai) là TRUE hay không. Toán tử này trả về TRUE nếu một và chỉ một trong các toán hạng của nó là TRUE. Nếu cả hai toán hạng đều TRUE thì toán tử sẽ trả về FALSE.

Bạn có thể đảo ngược giá trị Boolean bằng toán tử NOT, thường được viết là dấu chấm than(!). Nó trả về TRUE nếu toán hạng là FALSE và FALSE nếu toán hạng là TRUE.

Bảng dưới đây hiển thị một số biểu thức Boolean và kết quả của chúng:

Hoạt động so sánh

Bảng bên dưới hiển thị các phép toán so sánh có thể được sử dụng với số hoặc chuỗi:

Hoạt động so sánh
Hoạt động Tên Sự miêu tả
== Bằng Một phép toán có kết quả đúng nếu toán hạng của nó bằng và sai nếu ngược lại
!= Không công bằng Một phép toán có kết quả là sai nếu toán hạng của nó bằng và đúng nếu ngược lại
< Ít hơn Một phép toán có kết quả đúng nếu toán hạng bên trái nhỏ hơn toán hạng bên phải và ngược lại là sai
> Hơn Một phép toán có kết quả đúng nếu toán hạng bên trái lớn hơn toán hạng bên phải và ngược lại là sai
<= Ít hơn hoặc bằng Một phép toán có kết quả đúng nếu toán hạng bên trái nhỏ hơn hoặc bằng toán hạng bên phải và sai nếu ngược lại
>= Nhiều hơn hoặc bằng Một phép toán có kết quả là đúng nếu toán hạng bên trái lớn hơn hoặc bằng toán hạng bên phải và sai nếu ngược lại
=== Giống hệt nhau Một phép toán có kết quả đúng nếu cả hai toán hạng đều bằng nhau và cùng loại và sai nếu ngược lại

Một lỗi rất phổ biến bạn cần mắc phải là không nhầm lẫn toán tử gán (=) với toán tử so sánh (==).

Ưu tiên hoạt động

Tất nhiên, không nên lạm dụng phong cách lập trình trong đó trình tự các thao tác chủ yếu được xác định bằng cách sử dụng các quy tắc ưu tiên, vì mã viết theo phong cách này rất khó hiểu đối với những người nghiên cứu sau này, nhưng cần lưu ý rằng so sánh các hoạt động có mức độ ưu tiên cao hơn các hoạt động logic. Điều này có nghĩa là một câu lệnh có biểu thức kiểm tra như bên dưới

Mã PHP $var1 = 14; $var2 = 15; nếu (($var1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

có thể được viết lại như

Mã PHP ...nếu ($var1< $var2 && $var2 < 20) ...

câu lệnh if-else

Hướng dẫn nếu như cho phép một khối mã được thực thi nếu biểu thức điều kiện trong lệnh này đánh giá là TRUE; nếu không thì khối mã sẽ không được thực thi. Bất kỳ biểu thức nào cũng có thể được sử dụng làm điều kiện, bao gồm kiểm tra giá trị khác 0, đẳng thức, NULL liên quan đến các biến và giá trị được hàm trả về.

Việc những điều kiện riêng lẻ nào tạo thành câu điều kiện không quan trọng. Nếu điều kiện đúng thì nó được thực thi Mã chương trình, được đặt trong dấu ngoặc nhọn (()). Nếu không, PHP sẽ bỏ qua nó và chuyển sang kiểm tra điều kiện thứ hai, kiểm tra tất cả các điều kiện bạn đã viết ra cho đến khi nó chạm vào câu lệnh khác, sau đó nó sẽ tự động thực thi khối này. Câu lệnh else là tùy chọn.

Cú pháp của câu lệnh if là:

If (biểu thức điều kiện) (khối mã chương trình;)

Nếu kết quả đánh giá một biểu thức điều kiện là TRUE thì khối mã chương trình nằm sau nó sẽ được thực thi. Trong ví dụ sau, nếu $username được đặt thành "Quản trị viên", thông báo chào mừng sẽ được hiển thị. Nếu không sẽ không có gì xảy ra:

Mã PHP $username = "Quản trị viên"; if ($tên người dùng == "Quản trị viên") ( echo "Chào mừng đến với trang quản trị."; )

Tuy nhiên, nếu một khối mã chương trình chỉ chứa một lệnh thì dấu ngoặc nhọn là tùy chọn, thói quen tốt– luôn cài đặt chúng vì chúng giúp mã dễ đọc và chỉnh sửa hơn.

Câu lệnh else tùy chọn là một khối mã được thực thi theo mặc định khi biểu thức điều kiện đánh giá là FALSE. Câu lệnh else không thể được sử dụng riêng biệt với câu lệnh if vì else không có biểu thức điều kiện riêng. Nghĩa là, else và if phải luôn đi cùng nhau trong mã của bạn:

câu lệnh if và else $username = "không có quản trị viên"; if ($tên người dùng == "Quản trị viên") ( echo "Chào mừng đến với trang quản trị."; ) else ( echo "Chào mừng đến với trang thành viên."; )

Hãy nhớ đóng một khối mã trong câu lệnh if bằng dấu ngoặc nhọn nếu bạn đặt dấu ngoặc nhọn ở đầu khối. Khối else cũng phải có dấu ngoặc nhọn mở và đóng, giống như khối if.

Tất cả điều này đều tốt, ngoại trừ khi bạn cần kiểm tra nhiều điều kiện liên tiếp. Hướng dẫn phù hợp cho việc này nếu không. Nó cho phép kiểm tra các điều kiện bổ sung cho đến khi tìm thấy true hoặc đạt đến khối else. Mỗi câu lệnh elseif có khối mã riêng được đặt ngay sau biểu thức điều kiện của câu lệnh elseif. Câu lệnh elseif xuất hiện sau câu lệnh if và trước câu lệnh else, nếu có.

Cú pháp câu lệnh elseif phức tạp hơn một chút, nhưng ví dụ sau sẽ giúp bạn hiểu nó:

Kiểm tra nhiều điều kiện $username = "Khách"; if ($username == "Quản trị viên") ( echo "Chào mừng đến với trang quản trị."; ) elseif ($username == "Khách") ( echo "Không thể xem."; ) else ( echo "Chào mừng đến với trang người dùng."; )

Ở đây có hai điều kiện được kiểm tra và tùy thuộc vào giá trị của biến $username, hành động khác nhau. Và vẫn có cơ hội để làm điều gì đó nếu giá trị của biến khác với hai giá trị đầu tiên.

Toán tử bậc ba?:

Toán tử ?: là toán tử bậc ba (ternary) có ba toán hạng. Nó hoạt động tương tự như câu lệnh if nhưng trả về giá trị của một trong hai biểu thức. Biểu thức sẽ được đánh giá được xác định bởi biểu thức điều kiện. Dấu hai chấm (:) đóng vai trò là dấu phân cách biểu thức:

(tình trạng) ? đánh giá_if_condition_true: đánh giá_if_condition_false;

Ví dụ bên dưới kiểm tra một giá trị và trả về các chuỗi khác nhau tùy thuộc vào giá trị đó là TRUE hay FALSE:

Tạo tin nhắn bằng toán tử ?: $logged_in = TRUE; $user = "Igor"; $banner = (!$logged_in) ? "Đăng ký!" : "Chào mừng trở lại, $user!"; biểu ngữ tiếng vang $;

Rõ ràng là tuyên bố trên tương đương với tuyên bố sau:

Mã PHP $logged_in = TRUE; $user = "Igor"; if (!$logged_in) ( $banner = "Đăng ký!"; ) else ( $banner = "Chào mừng quay lại, $user!"; ) echo $banner;

câu lệnh chuyển đổi

Hướng dẫn công tắc so sánh một biểu thức với nhiều giá trị. Theo quy định, một biến được sử dụng làm biểu thức, tùy thuộc vào giá trị của biến đó mà một khối mã cụ thể phải được thực thi. Ví dụ: hãy tưởng tượng một biến $action có thể có các giá trị "ADD", "MODIFY" (thay đổi) và "DELETE" (xóa). Câu lệnh switch giúp dễ dàng xác định khối mã sẽ được thực thi cho từng giá trị này.

Để hiển thị sự khác biệt giữa câu lệnh if và switch, hãy kiểm tra một biến với nhiều giá trị. Ví dụ bên dưới hiển thị mã chương trình thực hiện kiểm tra như vậy dựa trên câu lệnh if và trong ví dụ sau, dựa trên câu lệnh switch:

Kiểm tra một trong nhiều giá trị (câu lệnh if) if ($action == "ADD") ( echo "Thực hiện phép cộng."; echo "Số lượng lệnh trong mỗi khối là không giới hạn."; ) elseif ($action == "MODIFY") ( echo "Thực hiện thay đổi ."; ) elseif ($action == "DELETE") ( echo "Thực hiện xóa."; ) Kiểm tra một trong một số giá trị (câu lệnh switch) switch ($action) ( case "ADD": echo "Thực hiện phép cộng."; echo "Số lượng lệnh trong mỗi khối là không giới hạn."; break; case "MODIFY": echo "Thực hiện thay đổi."; break; case "DELETE" : echo "Thực hiện xóa."; break; )

Câu lệnh switch nhận giá trị bên cạnh từ khóa chuyển đổi và bắt đầu so sánh nó với tất cả các giá trị, đứng gần đó với từ khóa trường hợp, theo thứ tự vị trí của chúng trong chương trình. Nếu không tìm thấy kết quả khớp thì không có khối nào được thực thi. Khi tìm thấy kết quả khớp, khối mã tương ứng sẽ được thực thi. Các khối mã bên dưới cũng được thực thi - cho đến khi kết thúc câu lệnh switch hoặc cho đến khi từ khóa phá vỡ. Điều này thuận tiện cho việc tổ chức một quy trình bao gồm nhiều bước liên tiếp. Nếu người dùng đã hoàn thành một số bước, họ sẽ có thể tiếp tục quá trình từ nơi mình đã dừng lại.

Biểu thức bên cạnh câu lệnh switch phải trả về giá trị thuộc kiểu nguyên thủy, chẳng hạn như số hoặc chuỗi. Một mảng chỉ có thể được sử dụng như một phần tử riêng biệt có giá trị thuộc loại cơ bản.

Lựa chọn mặc định

Nếu giá trị của biểu thức điều kiện không khớp với bất kỳ tùy chọn nào được đề xuất trong câu lệnh tình huống, thì câu lệnh switch trong trường hợp này cho phép bạn thực hiện điều gì đó, giống như câu lệnh else của cấu trúc if, elseif, else. Để làm điều này, bạn cần thực hiện một hướng dẫn là tùy chọn cuối cùng trong danh sách lựa chọn mặc định:

Tạo thông báo lỗi bằng câu lệnh mặc định $action = "XÓA"; switch ($action) ( case "ADD": echo "Thực hiện phép cộng."; echo "Số lượng lệnh trong mỗi khối là không giới hạn."; break; case "MODIFY": echo "Thực hiện thay đổi."; break; case "DELETE" : echo "Thực hiện xóa."; break; default: echo "Lỗi: Lệnh $action không được phép, ". "chỉ có thể sử dụng các lệnh THÊM, SỬA ĐỔI và XÓA."; )

Ngoài cú pháp thông thường, câu lệnh switch còn hỗ trợ một cú pháp thay thế - xây dựng từ khóa công tắc/công tắc cuối, xác định phần đầu và phần cuối của câu lệnh thay vì dấu ngoặc nhọn:

Câu lệnh switch kết thúc bằng từ khóa endswitch switch ($action): case "ADD": echo "Thực hiện thêm."; echo "Số lượng lệnh trong mỗi khối là không giới hạn."; phá vỡ; case "MODIFY": echo "Thực hiện sửa đổi."; phá vỡ; case "DELETE": echo "Thực hiện xóa."; phá vỡ; mặc định: echo "Lỗi: Lệnh $action không hợp lệ, ". "Chỉ có thể sử dụng các lệnh THÊM, SỬA ĐỔI và XÓA."; công tắc cuối;

Thực hiện ngắt

Nếu chỉ có khối mã tương ứng với một giá trị nhất định, thì từ khóa break sẽ được chèn vào cuối khối này. Trình thông dịch PHP, khi gặp từ khóa break sẽ tiến hành thực thi dòng nằm sau dấu ngoặc nhọn đóng của câu lệnh switch (hoặc từ khóa endswitch). Nhưng nếu bạn không sử dụng câu lệnh break thì việc kiểm tra sẽ tiếp tục trong các nhánh trường hợp tiếp theo của cấu trúc switch. Dưới đây là một ví dụ:

Điều gì xảy ra khi không có câu lệnh break $action="ĐẶT HÀNG LẮP RÁP"; switch ($action) ( case "ĐẶT HÀNG LẮP RÁP": echo "Lệnh lắp ráp.
"; trường hợp "GÓI": echo "Pack.
"; trường hợp "SHIP": echo "Giao hàng cho khách.
"; }

Nếu biến $action được đặt thành "ASSEMBLE ORDER", kết quả của đoạn này sẽ như sau:

Thu thập đơn đặt hàng. Bọc lại. Giao hàng cho khách hàng.

Giả sử rằng giai đoạn xây dựng đã hoàn thành và biến $action được đặt thành "GÓI", sẽ thu được kết quả sau:

Bọc lại. Giao hàng cho khách hàng.

Đôi khi, việc không có câu lệnh break là hữu ích, như trong ví dụ trên nơi hình thành các giai đoạn thứ tự, nhưng trong hầu hết các trường hợp, câu lệnh này nên được sử dụng.

Kiểu dữ liệu Chu kỳ 1 2 3 4 5 6 7 8 9 10

Xin chào các lập trình viên mới làm quen thân mến. Hãy tiếp tục nghiên cứu các yếu tố tạo nên.

Trong bài viết này chúng ta sẽ tìm hiểu những gì là toán tử php. Trên thực tế, chúng ta đã quen thuộc với một số trong số chúng gần như từ khi còn nhỏ, nhưng chúng ta chỉ biết chúng dưới dạng dấu (+, -, =, !, ?).

Trong php chúng đều được gọi là toán tử, điều này khá logic vì chúng thực hiện Hành động cụ thể, hoặc phẫu thuật.

Bạn thậm chí có thể nói rằng tất cả các ký tự in được không phải là chữ cái hoặc số đều là toán tử trong PHP. Nhưng đó không phải là tất cả vì có những toán tử bao gồm các chữ cái.

Hãy bắt đầu theo thứ tự.

Toán tử số học

Toán tử số học được sử dụng để thực hiện các phép tính trên số.

+ là toán tử cộng;
— — toán tử trừ;
/ - toán tử chia;
* — toán tử nhân;
% là toán tử lấy số dư trong phép chia;
++ — toán tử để tăng thêm một (tăng);
— — — giảm đi một toán tử (giảm)

Khi viết, một dấu cách thường được đặt trước và sau toán tử. Điều này được thực hiện chỉ để dễ đọc mã, mặc dù khoảng trống này không ảnh hưởng gì cả và bạn có thể thực hiện mà không cần nó nếu muốn.

Các biểu thức phức tạp được tạo thành theo các quy tắc được chấp nhận trong số học, nghĩa là phép nhân và phép chia được ưu tiên hơn phép cộng và phép trừ và khi cả hai đều có trong biểu thức thì phép chia sau sẽ được đặt trong ngoặc đơn.

tiếng vang (6 + 7 ) * (7 + 8 ); // 195
?>

Khi thực hiện thao tác chia một số nguyên cho một số nguyên, trong trường hợp lấy số dư thì kết quả sẽ tự động chuyển thành số thực(số điểm nổi).

tiếng vang 8/3; //2.66666666666
?>

Số ký tự được hiển thị cho Số phân số, phụ thuộc đặt giá trị trong chỉ thị chính xác được tìm thấy trong tệp php.ini. Thông thường đây là 12 ký tự không tính dấu chấm.

Toán tử % thường được sử dụng để xác định xem một số có chia hết cho số khác mà không có số dư hay không.

tiếng vang 53328 % 4 ; //0
?>

Các phép toán với các toán tử số học, ngoại trừ phép tăng và giảm, được gọi là nhị phân, vì chúng liên quan đến hai toán hạng (số hạng + số hạng, số bị chia/số chia, v.v.)

Hành động tăng và giảm được gọi là đơn nhất, vì chúng liên quan đến một toán hạng. Có thêm nữa không hoạt động có điều kiện, bao gồm ba toán hạng.

Toán tử tăng (++) và giảm (- -) chỉ áp dụng cho các biến.

Số nguyên kiểu biến (số nguyên)

$tiếp theo = 3 ;
tiếng vang +$tiếp theo; // 4
?>

Chuỗi kiểu biến

$next = "abc";
tiếng vang $ tiếp theo; // abd
?>

Chữ "d" được in thay vì chữ "c" vì nó nằm tiếp theo trong bảng chữ cái và chúng ta đã tăng giá trị của biến lên một.

Các ví dụ hiển thị các hành động tăng dần và theo cách tương tự, bạn có thể thực hiện các hành động giảm dần.

Toán tử bitwise

Toán tử bitwise được thiết kế để làm việc với dữ liệu nhị phân. Nếu ai chưa hiểu nó là gì thì tôi sẽ giải thích. Số nhị phân là những số như 1001000011100000111000.

Vì những dữ liệu đó hầu như không bao giờ được sử dụng trong quá trình phát triển trang web nên chúng tôi sẽ không đề cập chi tiết về nó. Tôi sẽ chỉ cho bạn thấy chúng trông như thế nào để khi gặp những biểu tượng như vậy bạn có thể hình dung ra mình đang phải đối mặt với điều gì.

& - kết nối bitwise AND (và);
~ — phủ định theo bit (không);
| - liên kết bitwise OR (hoặc);
^ — loại bỏ bitwise OR (xor);
<< — сдвиг влево битового значения операнда;
>> — dịch chuyển sang phải giá trị bit của toán hạng;

Rất có thể bạn sẽ gặp phải những toán tử này vì dữ liệu nhị phân được sử dụng rộng rãi trong việc phát triển các chương trình phần mềm. đô họa may tinh. Nhưng để nghiên cứu chúng, nếu ai đó cần, họ sẽ phải tham gia một khóa học riêng về tài nguyên khác.

Toán tử so sánh

Toán tử so sánh là toán tử logic và được sử dụng để so sánh các biến. Mảng và đối tượng không thể được so sánh bằng cách sử dụng chúng.

> - toán tử lớn hơn;
=> - toán tử lớn hơn hoặc bằng;
< — оператор меньше;
<= — оператор меньше или равно;
== — toán tử đẳng thức;
!= — toán tử bất đẳng thức;
=== - toán tử tương đương (giá trị và loại của biến bằng nhau);
!== — toán tử không tương đương;

Kết quả của việc so sánh, một trong hai được hiển thị trên màn hình, tương ứng với true (true) hoặc một chuỗi trống, tương ứng với false (false).

tiếng vang 1 > 0; // 1
tiếng vang 1< 0 ; // пустая строка
tiếng vang 1 => 0 ; // 1
tiếng vang 1 == 1; // 1
?>

Vì vậy, bản thân các toán tử so sánh hầu như không bao giờ được sử dụng. Mục đích chính của chúng là làm việc cùng với câu lệnh if.

Câu lệnh có điều kiện if, else, elseif.

Các toán tử có điều kiện được gọi như vậy vì chúng được thiết kế để kiểm tra một điều kiện nhất định, tùy thuộc vào hành động cụ thể nào được thực hiện.

Câu lệnh if lấy một biến hoặc biểu thức boolean làm đối số. Nếu điều kiện đúng thì hiển thị kết quả, nếu không đúng thì hiển thị một dòng trống.



nếu ($ tiếp theo< $nexT)
{
echo "Khả năng có mưa"; // Lượng mưa đầu ra có thể
}
?>

$next = "Độ ẩm không khí 80%";
$nexT = "Độ ẩm không khí 90%";
nếu ($tiếp theo > $nexT)
{
echo "Khả năng có mưa"; // In một dòng trống
}
?>

Nếu chương trình cần chỉ định hai hành động, một trong số đó sẽ được thực hiện nếu giá trị là đúng và hành động còn lại nếu giá trị là sai, thì cùng với câu lệnh if, câu lệnh else sẽ được sử dụng

$next = "Độ ẩm không khí 80%";
$nexT = "Độ ẩm không khí 90%";
nếu ($tiếp theo > $nexT)
{
echo "Khả năng có mưa";
}
khác
{
echo "Dự kiến ​​không có mưa";
}
?>

Trong trường hợp này, “Không có lượng mưa được mong đợi” sẽ được hiển thị và nếu trong biểu thức bạn thay đổi dấu “Thêm” thành “Ít hơn”, thì “Có thể có lượng mưa” sẽ được hiển thị. Đây là cách các toán tử điều kiện kiểm tra một điều kiện và đưa ra kết quả chính xác theo nó.

Rất thường xuyên cần phải đặt nhiều hơn hai điều kiện và sau đó, để kiểm tra chúng một cách tuần tự, toán tử elseif được sử dụng.



nếu ($tiếp theo > $nexT)
{
tiếng vang "Tôi hiểu";
}
elseif ($ tiếp theo<= $nexT)
{
tiếng vang "Tuyết";
}
elseif ($tiếp theo >= $nexT)
{
tiếng vang "Mưa";
}
elseif ($tiếp theo == $nexT)
{
tiếng vang “Hạn hán”;
}
khác
{
echo "Khả năng có mưa";
}
?>

Chương trình này sẽ xuất ra "Tuyết". Nếu không có điều kiện nào phù hợp, nó sẽ hiển thị “Cơ hội kết tủa”.

Một câu lệnh if có thể chứa bao nhiêu khối elseif tùy thích, nhưng chỉ có một câu lệnh else.

Cho phép Lựa chọn thay thế mục - không có dấu ngoặc nhọn. Trong trường hợp này, các dòng của câu lệnh if, else, elseif kết thúc bằng dấu hai chấm và toàn bộ cấu trúc kết thúc bằng từ khóa (toán tử) endif.

$next = "Độ ẩm không khí 50%";
$nexT = "Độ ẩm không khí 60%";
nếu ($ tiếp theo<= $nexT):

tiếng vang "Tuyết";

elseif ($next >= $nexT):

tiếng vang "Mưa";

elseif ($tiếp theo == $nexT):

tiếng vang “Hạn hán”;

khác:

echo "Khả năng có mưa";
kết thúc ;
?>

Toán tử logic

Các toán tử logic tương tự như các toán tử bitwise. Sự khác biệt giữa chúng là cái trước hoạt động với các biến logic và cái sau hoạt động với các con số.

Toán tử logic được sử dụng trong trường hợp bạn cần kết hợp một số điều kiện, điều này sẽ làm giảm số lượng câu lệnh if, từ đó giảm khả năng xảy ra lỗi trong mã.

&& - liên từ nối AND;
và - cũng có AND, nhưng với mức độ ưu tiên thấp hơn;
|| - tách liên từ OR;
hoặc - cũng là OR, nhưng với mức độ ưu tiên thấp hơn;
xor - HOẶC độc quyền;
! - từ chối;

Mức độ ưu tiên thấp hơn có nghĩa là nếu cả hai toán tử đều có mặt thì toán tử có mức độ ưu tiên cao hơn sẽ được thực thi trước.

Trong tương lai, bằng cách sử dụng các ví dụ về các tập lệnh phức tạp hơn, chúng ta sẽ tập trung vào các toán tử logic một cách chi tiết hơn.

Toán tử gán

Toán tử gán = gán giá trị của toán hạng bên phải cho toán hạng bên trái.

$next = "Xin chào"
echo "Xin chào" // Xin chào
?>

dấu chấm toán tử

Toán tử dấu chấm tách phần nguyên của một số khỏi phần phân số và kết hợp một số chuỗi và một số thành một chuỗi nguyên.

$tiếp theo = 22 ;
echo "Hôm nay sau" .$next. "sương giá được mong đợi"; // Dự kiến ​​hôm nay sau 22 sương giá
?>

Toán tử dấu ngoặc đơn

Giống như trong toán học, toán tử dấu ngoặc đơn ưu tiên cho hành động nằm trong chúng.

Dữ liệu trong ngoặc đơn được thực thi trước tiên, sau đó là tất cả phần còn lại.

Toán tử dấu ngoặc nhọn

Có ba cách, hoặc thậm chí là các kiểu, để đặt dấu ngoặc nhọn trong PHP.

1. Kiểu BSD - dấu ngoặc được căn chỉnh sang trái.

nếu ($ tiếp theo)
{

}

2. Kiểu GNU - dấu ngoặc được căn lề thụt vào từ cạnh trái

nếu ($ tiếp theo)
{
echo “Chào các bạn lập trình viên mới vào nghề”;
}

3. Kiểu K&R - dấu ngoặc đơn mở trên dòng toán tử

nếu ($ tiếp theo)(
echo “Chào các bạn lập trình viên mới vào nghề”;
}

Ngay từ đầu, bạn cần chọn một trong các kiểu và trong tương lai, khi viết kịch bản, chỉ sử dụng kiểu đó. Hơn nữa, việc bạn thích phong cách nào không quan trọng. Điều quan trọng là nó phải thống nhất trong suốt chương trình.

Tôi nghĩ bây giờ thế là đủ rồi. Về nguyên tắc, không chỉ các dấu hiệu, mà cả các hàm và các phần tử khác cũng có thể là toán tử, vì vậy rất khó để liệt kê hết chúng và chẳng có ích gì.

Chỉ cần có ý tưởng về những điều cơ bản là đủ. Và chúng tôi sẽ phân tích phần còn lại bằng các ví dụ thực tế.

Một người Ireland lang thang quanh sân bay Sheremetyevo trong nước mắt. Một nhân viên quyết định thông cảm:
- Bạn có nhớ quê hương không?
- Không có gì. Tôi vừa bị mất hết hành lý
- Làm sao điều này xảy ra được?
- Tôi không hiểu nổi chính mình. Có vẻ như tôi đã cắm phích cắm đúng cách

PHP hỗ trợ các toán tử logic tiêu chuẩn AND và && , OR và || , ! (không) và XOR . Toán tử logic cho phép bạn so sánh kết quả của hai toán hạng (một giá trị hoặc một biểu thức) để xác định xem một hoặc cả hai toán hạng trả về đúng hay sai và chọn có tiếp tục thực thi tập lệnh tương ứng hay không dựa trên giá trị được trả về. Giống như các toán tử so sánh, các toán tử logic trả về một giá trị Boolean duy nhất - đúng hoặc sai, tùy thuộc vào các giá trị ở hai bên của toán tử.

Logic HOẶC (HOẶC và ||)

Toán tử logic OR được ký hiệu là OR hoặc || . Nó thực hiện phép toán OR logic trên hai toán hạng. Nếu một hoặc cả hai toán hạng đều đúng thì kết quả trả về là true. Nếu cả hai toán hạng đều sai, nó sẽ trả về sai. Chắc hẳn bạn có thắc mắc: tại sao họ lại tạo ra hai phiên bản của một toán tử? Ý nghĩa của hai các lựa chọn khác nhau Toán tử OR logic là chúng hoạt động với các mức độ ưu tiên khác nhau.

Đầu tiên, hãy xem toán tử || hoạt động như thế nào. . Và vì vậy, nếu một hoặc cả hai toán hạng của nó đều đúng, nó sẽ trả về true . Nếu cả hai toán hạng đều trả về giá trị false thì nó sẽ trả về false.

Toán tử OR hoạt động giống như toán tử ||. với một ngoại lệ, nếu toán tử OR được sử dụng trong một phép gán, trước tiên nó sẽ đánh giá và trả về giá trị của toán hạng bên trái, nếu không thì nó hoạt động giống hệt như toán tử ||. , I E. nếu một hoặc cả hai toán hạng của nó đều đúng thì nó trả về true . Nếu cả hai toán hạng đều trả về false thì nó sẽ trả về false.

Để làm rõ hơn cách chúng hoạt động, hãy đưa ra ví dụ sau:

1 // Đầu tiên biến được gán giá trị false, sau đó toán hạng thứ hai được đánh giá // Hành động ưu tiên: ($var2 = false) hoặc true $var2 = false hoặc true; tiếng vang $var2; // false không được in // ($var3 = 0) hoặc 3 $var3 = 0 hoặc 3; tiếng vang "
$var3"; // => 0 ?>

Bất kỳ toán tử so sánh và logic nào cũng có thể được kết hợp thành các cấu trúc phức tạp hơn:

Một điều nữa đáng nói tâm điểm, liên quan đến cả OR và || . Toán tử logic OR bắt đầu đánh giá bằng toán hạng bên trái; nếu nó trả về true thì toán hạng bên phải sẽ không được đánh giá. Điều này giúp tiết kiệm thời gian thực hiện, nhưng phải cẩn thận để đảm bảo rằng mã mà hoạt động chính xác của chương trình có thể phụ thuộc vào không được đặt trong toán hạng bên phải.

Logic VÀ (VÀ và &&)

Toán tử logic AND được ký hiệu là AND hoặc && . Nó thực hiện phép toán logic AND trên hai toán hạng. Nó trả về true khi và chỉ khi cả hai toán hạng đều có giá trị true. Nếu một hoặc cả hai toán hạng trả về false thì toán tử sẽ trả về false. Ý nghĩa của hai phiên bản khác nhau của toán tử “logic AND” giống như hai toán tử trước đó, cụ thể là chúng hoạt động với các mức độ ưu tiên khác nhau.

Đầu tiên, hãy xem toán tử && hoạt động như thế nào. Và vì vậy, nếu cả hai toán hạng của nó đều đúng, nó sẽ trả về true . Nếu ít nhất một hoặc cả hai toán hạng của nó trả về false thì nó cũng sẽ trả về false.

Toán tử AND hoạt động giống như toán tử && ngoại trừ một ngoại lệ, nếu toán tử AND được sử dụng với một phép gán, trước tiên nó sẽ đánh giá và trả về giá trị của toán hạng bên trái, nếu không thì nó hoạt động giống hệt như toán tử &&. Nếu ít nhất một trong các toán hạng của nó trả về sai thì nó cũng sẽ trả về sai và nếu cả hai toán hạng đều trả về sai thì nó sẽ trả về sai.

Để hiểu, bây giờ chúng ta hãy xem cách thức hoạt động của nó trong thực tế:

$bar3"; // => 9 ?>

HOẶC độc quyền (XOR)

Toán tử OR độc quyền được ký hiệu là XOR. Nó trả về true nếu một và chỉ một trong các toán hạng của nó là đúng. Nếu cả hai toán hạng đều đúng thì toán tử sẽ trả về sai.

Bởi vì toán tử XOR có cùng mức ưu tiên với toán tử AND và OR (thấp hơn toán tử gán) và được sử dụng trong biểu thức gán nên trước tiên nó sẽ đánh giá và trả về giá trị của toán hạng bên trái.

6 $a1 = 19 xor 5 > 6; var_dump($a1); // => 19 var_dump(true xor true); // sai var_dump((2< 3) xor (5 != 5)); // true ?>

Hợp lý KHÔNG (!)

Toán tử logic NOT, còn được gọi là phủ định, được biểu thị bằng dấu! . Anh ấy là toán tử đơn nguyên, được đặt trước một toán hạng. Toán tử logic NOT được sử dụng để đảo ngược giá trị logic của toán hạng và luôn trả về true hoặc false.

Nếu bạn cần đảo ngược giá trị của một biểu thức, chẳng hạn như a && b , bạn sẽ cần sử dụng dấu ngoặc đơn: !(a && b) . Ngoài ra với sự giúp đỡ của một nhà điều hành! Bạn có thể chuyển đổi bất kỳ giá trị x nào thành giá trị Boolean tương đương bằng cách sử dụng toán tử: !!x hai lần.

Bài học sẽ đề cập đến các câu lệnh php có điều kiện: câu lệnh if và câu lệnh switch

Các câu lệnh điều kiện trong PHP được biểu diễn bằng ba cấu trúc chính:

  • toán tử điều kiện nếu như,
  • toán tử chuyển đổi công tắc
  • toán tử bậc ba.

Chúng ta hãy xem xét kỹ hơn về từng người trong số họ.

Câu lệnh if trong PHP

Hình 3.1. Điều hành có điều kiện NẾU, phiên bản ngắn


Cơm. 3.2. Cú pháp câu lệnh điều kiện IF ELSE


Cơm. 3.3. Cú pháp đầy đủ của câu lệnh điều kiện IF elseif

Hãy tóm tắt:

Cú pháp đầy đủ:

if (điều kiện) ( // nếu điều kiện đúng operator1; operator2; ) elseif(điều kiện) ( operator1; ... ) else ( // nếu điều kiện sai operator1; operator2; )

  • Cú pháp rút gọn có thể không chứa các phần của cấu trúc else và không chứa Điều kiện bổ sung nếu không
  • Thay vì dùng từ hàm elseif, bạn có thể viết else if (riêng)
  • Có thể có nhiều if khác trong một cấu trúc if. Biểu thức elseif đầu tiên bằng TRUE sẽ được thực thi.
  • Nếu có một điều kiện thay thế khác xây dựng khác phải đến cuối cùng trong cú pháp.

Câu lệnh điều kiện có thể sử dụng dấu hai chấm: thay vì dấu ngoặc nhọn. Trong trường hợp này, câu lệnh kết thúc bằng từ phụ endif

Cơm. 3.4. Câu lệnh điều kiện If và Endif trong php

Ví dụ:

if($x > $y): echo $x." lớn hơn ".$y; elseif($x == $y): // khi sử dụng => bạn không thể viết riêng elseif nếu echo $x." bằng ".$y; khác: echo $x." not > và not = ".$y; cuối cùng;

Quan trọng: Khi sử dụng dấu hai chấm thay cho dấu ngoặc nhọn trong cấu trúc, elseif không thể được viết bằng hai từ!

Các phép toán logic trong một điều kiện

Điều kiện if trong ngoặc đơn có thể chứa các thao tác sau:

Ví dụ: kiểm tra giá trị của biến số: nếu nó nhỏ hơn hoặc bằng 10, hiển thị thông báo "một số nhỏ hơn hoặc bằng 10", nếu không thì hiển thị thông báo "một số lớn hơn 10"


Giải pháp:

$số=15; nếu ($số<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

Các khối mã PHP có thể bị phá vỡ, hãy xem một ví dụ:

Ví dụ: Hiển thị mã html trên màn hình "a bằng 4", nếu biến $a thực sự bằng 4


1 Giải pháp:
1 2 3 4

2 Giải pháp:

1 2 3 A bằng 4

A bằng 4

công việc php 3_1: Xuất bản dịch màu từ bằng tiếng Anh sang tiếng Nga, kiểm tra giá trị của biến (trong đó màu được gán: $a="blue")


công việc php 3_2: Tìm số lớn nhất của ba số

Phép so sánh và quy tắc nói dối

Cấu trúc if phải chứa trong dấu ngoặc đơn biểu thức logic hoặc một biến, được xem xét từ quan điểm đại số logic, trả về các giá trị đúng hoặc sai

Những thứ kia. một biến duy nhất có thể hoạt động như một điều kiện. Hãy xem một ví dụ:

1 2 3 4 $a = 1 ; nếu ($a) ( echo $a; )

$a=1; nếu ($a) ( echo $a; )

Trong ví dụ, người dịch ngôn ngữ php sẽ xem xét biến trong ngoặc đơn cho quy tắc nói dối:

Quy tắc LIE hoặc những gì được coi là sai:

  • hợp lý SAI
  • toàn bộ số không ( 0 )
  • số không thực sự ( 0.0 )
  • dòng trống và chuỗi «0»
  • mảng không có phần tử
  • đối tượng không có biến
  • loại đặc biệt VÔ GIÁ TRỊ

Do đó, trong ví dụ đang xem xét, biến $a bằng 1, do đó điều kiện sẽ đúng và toán tử echo $a; sẽ hiển thị giá trị của biến.

công việc php 3_3: biến đã cho a Chuỗi giá trị. Nếu a bằng tên thì in "Xin chào, tên!", nếu a bằng một giá trị trống thì xuất ra "Xin chào Người lạ!"

Cấu trúc logic AND OR và NOT trong toán tử điều kiện

  1. Đôi khi cần phải đảm bảo việc thực hiện đồng thời một số điều kiện. Sau đó kết hợp các điều kiện toán tử logic AND — && :
  2. $a=1; if ($a>0 || $a>1) ( echo "a > 0 hoặc a > 1"; )

  3. Để cho biết một điều kiện có sai hay không, hãy sử dụng toán tử logic KHÔNG — ! :
  4. 1 2 3 4 $a = 1 ; nếu (! ($a< 0 ) ) { echo "a не < 0" ; }

    $a=1; nếu (!($a<0)) { echo "a не < 0"; }

Chuyển đổi toán tử PHP

Toán tử chuyển đổi hoặc “chuyển đổi” thay thế một số cấu trúc if liên tiếp. Khi làm như vậy, nó so sánh một biến với nhiều giá trị. Vì vậy, đây là phương tiện thuận tiện nhất để tổ chức đa chi nhánh.

Cú pháp:

1 2 3 4 5 6 7 8 9 10 switch ($biến) ( case "value1" : operator1 ; break ; case "value2" : operator2 ; break ; case "value3" : operator3 ; break ; [ mặc định : operator4 ; break ; ] )

switch($variable)( case "value1": operator1; break; case "value2": operator2; break; case "value3": operator3; break; )

  • Toán tử có thể kiểm tra cả giá trị chuỗi (sau đó chúng được chỉ định trong dấu ngoặc kép) và giá trị số (không có dấu ngoặc kép).
  • Tuyên bố break trong việc xây dựng là bắt buộc. Nó thoát khỏi cấu trúc nếu điều kiện đúng và toán tử tương ứng với điều kiện được thực thi. Không có ngắt, tất cả các câu lệnh tình huống sẽ được thực thi bất kể sự thật của chúng.

Cơm. 3.5. Câu lệnh chuyển đổi có điều kiện


Ví dụ: một mảng có tên nam đầy đủ được đưa ra. Kiểm tra phần tử đầu tiên của mảng và tùy thuộc vào tên, hiển thị lời chào bằng tên ngắn.


Giải pháp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = mảng ("Ivan" , "Peter" , "Semyon" ); switch ($names [ 0 ] ) ( case "Peter" : echo "Xin chào, Petya!" ; break ; case "Ivan" : echo "Xin chào, Vanya!" ; break ; case "Semyon" : echo "Xin chào, Vanya! " ; break ; mặc định : echo "Xin chào, $tên!"; phá vỡ ; )

$names=array("Ivan","Peter","Semyon"); switch($names)( case "Peter": echo "Xin chào, Petya!"; break; case "Ivan": echo "Xin chào, Vanya!"; break; case "Semyon": echo "Xin chào, Vanya!"; break ; mặc định: echo "Xin chào, $names!"; break; )

công việc php 3_4:

  • Tạo biến $day và gán cho nó một giá trị số tùy ý
  • Sử dụng cấu trúc switch, in cụm từ "Đó là một ngày làm việc", nếu giá trị của biến $day nằm trong phạm vi số từ 1 đến 5 (đã bao gồm)
  • In cụm từ "Hôm nay là ngày nghỉ", nếu giá trị của biến $day bằng các số 6 hoặc 7
  • In cụm từ "Ngày không biết", nếu giá trị của biến $day không nằm trong phạm vi số từ 1 đến 7 (đã bao gồm)

Hoàn thành mã:

1 2 3 4 5 6 7 8 9 10 11 12 ... switch (... ) ( case 1 : case 2 : ... echo "Đó là một ngày làm việc"; phá vỡ ; trường hợp 6 : ... mặc định : ... )

Switch(...)( case 1: case 2: ... echo "Hôm nay là một ngày làm việc"; break; case 6: ... default: ... )

Toán tử ba ngôi PHP

Toán tử bậc ba, I E. với ba toán hạng, có cú pháp khá đơn giản nằm ở bên trái của ? điều kiện được viết và bên phải là hai toán tử được phân tách bằng dấu: , ở bên trái dấu toán tử được thực thi nếu điều kiện đúng và ở bên phải dấu hiệu: toán tử được thực thi nếu điều kiện là SAI.

tình trạng? toán tử1 : toán tử2 ;

Cập nhật lần cuối: 1/11/2015

Trong PHP chúng ta có thể sử dụng nhiều toán tử khác nhau: số học, logic, v.v. Chúng ta hãy xem xét từng loại hoạt động.

Các phép tính toán học

    + (thao tác cộng)

    Ví dụ: $a + 5

    - (thao tác trừ)

    Ví dụ: $a - 5

    * (phép nhân)

    Ví dụ: $a * 5

    / (phân công)

    Ví dụ: $a / 5

    % (lấy phần dư của phép chia)

    Ví dụ: $a=12; tiếng vang $a % 5; // bằng 2

    ++ (tăng/tăng giá trị lên một)

    Ví dụ: ++$a

    Điều quan trọng là phải hiểu sự khác biệt giữa các biểu thức ++$a và $a++ . Ví dụ:

    $a=12; $b=++$a; // $b bằng 13 echo $b;

    Ở đây, đầu tiên, một giá trị được thêm vào giá trị của biến $a, sau đó giá trị của nó tương đương với biến $b. Sẽ khác nếu biểu thức trông như thế này: $b=$a++; . Ở đây, đầu tiên giá trị của biến $a bằng biến $b, sau đó giá trị của biến $a được tăng lên.

    -- (giảm/giảm giá trị một đơn vị)

    Ví dụ: --$a . Ngoài ra, như trong trường hợp tăng dần, có hai loại ghi: --$a và $a--

Toán tử gán

    Đánh đồng một biến với một giá trị cụ thể: $a = 5

    Phép cộng theo sau là phép gán kết quả. Ví dụ: $a=12; $a += 5; tiếng vang $a; // bằng 17

    Phép trừ sau đó là phép gán kết quả. Ví dụ: $a=12; $a -= 5; tiếng vang $a; // bằng 7

    Phép nhân theo sau là phép gán kết quả: $a=12; $a *= 5; tiếng vang $a; // bằng 60

    Phép chia theo sau là phép gán kết quả: $a=12; $a /= 5; tiếng vang $a; // bằng 2,4

    Nối các hàng và gán kết quả. Áp dụng cho hai dòng Nếu các biến không lưu trữ chuỗi, nhưng, chẳng hạn như số, thì giá trị của chúng được chuyển đổi thành chuỗi và sau đó thao tác được thực hiện: $a=12; $a .= 5; tiếng vang $a; // bằng 125 // giống $b="12"; $b .="5"; // bằng 125

    Lấy phần dư của phép chia rồi gán kết quả: $a=12; $a %= 5; tiếng vang $a; // bằng 2

Hoạt động so sánh

Các phép toán so sánh thường được sử dụng trong các cấu trúc có điều kiện khi cần so sánh hai giá trị và tùy thuộc vào kết quả so sánh, thực hiện một số hành động nhất định. Các hoạt động so sánh sau đây có sẵn.

    Toán tử đẳng thức so sánh hai giá trị và nếu chúng bằng nhau, trả về true, nếu không trả về false: $a == 5

    Toán tử nhận dạng cũng so sánh hai giá trị và nếu chúng bằng nhau, trả về true, nếu không trả về false: $a === 5

    So sánh hai giá trị và nếu chúng không bằng nhau, trả về true, nếu không trả về false: $a != 5

    So sánh hai giá trị và nếu chúng không bằng nhau, trả về true, nếu không trả về false: $a !== 5

    So sánh hai giá trị và nếu giá trị đầu tiên lớn hơn giá trị thứ hai thì trả về true, nếu không thì trả về false: $a > 5

    So sánh hai giá trị và nếu giá trị đầu tiên nhỏ hơn giá trị thứ hai thì trả về true, nếu không thì trả về false: $a< 5

    So sánh hai giá trị và nếu giá trị đầu tiên lớn hơn hoặc bằng giá trị thứ hai thì trả về true, nếu không thì trả về false: $a >= 5

    So sánh hai giá trị và nếu giá trị đầu tiên nhỏ hơn hoặc bằng giá trị thứ hai thì trả về true, nếu không thì trả về false: $a<= 5

Toán tử bình đẳng và nhận dạng

Cả hai toán tử đều so sánh hai biểu thức và trả về true nếu các biểu thức bằng nhau. Nhưng có sự khác biệt giữa chúng. Nếu phép toán đẳng thức lấy hai giá trị thuộc các loại khác nhau thì chúng sẽ được giảm xuống một - giá trị mà trình thông dịch thấy là tối ưu. Ví dụ:

Rõ ràng, các biến lưu trữ các giá trị khác nhau thuộc các loại khác nhau. Nhưng khi so sánh, chúng sẽ được quy giản về cùng loại - số. Và biến $a sẽ được rút gọn về số 22. Và cuối cùng, cả hai biến sẽ bằng nhau.

Hoặc, ví dụ, các biến sau cũng sẽ bằng nhau:

$a = sai; $b = 0;

Để tránh những tình huống như vậy, phép toán tương đương được sử dụng, không chỉ tính đến giá trị mà còn tính đến loại biến:

$a = "22a"; $b = 22; if($a===$b) echo "bằng"; tiếng vang khác "không bằng";

Bây giờ các biến sẽ không bằng nhau.

Các toán tử bất đẳng thức != và !== hoạt động tương tự.

Các phép toán logic

Các phép toán logic thường được sử dụng để kết hợp kết quả của hai phép toán so sánh. Ví dụ: chúng ta cần thực hiện một hành động nhất định nếu một số điều kiện là đúng. Có sẵn các phép toán logic sau:

    Trả về true nếu cả hai phép so sánh đều trả về true, nếu không thì trả về false: $a == 5 && $b = 6

    Tương tự như thao tác &&: $a == 5 và $b > 6

    Trả về true nếu ít nhất một phép toán so sánh trả về true, nếu không thì trả về false: $a == 5 || $b = 6

    Tương tự như thao tác || : $a< 5 or $b > 6

    Trả về true nếu phép so sánh trả về false: !($a >= 5)

    Trả về true nếu chỉ một trong các giá trị là true. Nếu cả hai đều đúng hoặc không đúng thì trả về sai. Ví dụ: $a=12; $b=6; if($a xor $b) echo "true"; nếu không thì echo "false";

    Ở đây kết quả của phép toán logic sẽ sai vì cả hai biến đều có một giá trị cụ thể. Hãy thay đổi mã:

    $a=12; $b=NULL; if($a xor $b) echo "true"; nếu không thì echo "false";

    Ở đây kết quả sẽ đúng vì giá trị của một biến không được đặt. Nếu một biến có giá trị NULL thì trong các phép toán logic, giá trị của nó sẽ được coi là sai

Hoạt động bit

Hoạt động bit được thực hiện trên các bit riêng lẻ của một số. Các số được xem xét trong biểu diễn nhị phân, ví dụ số 2 trong biểu diễn nhị phân là 010, số 7 là 111.

    & (phép nhân logic)

    Phép nhân được thực hiện theo bit và nếu cả hai toán hạng có giá trị bit bằng 1 thì phép toán trả về 1, nếu không thì trả về số 0. Ví dụ: $a1 = 4; //100 $b1 = 5; //101 echo $a1 & $b1; // bằng 4

    Ở đây số 4 trong hệ nhị phân là 100 và số 5 là 101. Nhân các số từng bit một và nhận được (1*1, 0*0, 0 *1) = 100, tức là số 4 ở dạng thập phân định dạng.

    | (phép cộng logic)

    Tương tự như phép nhân logic, phép toán cũng được thực hiện trên các chữ số nhị phân, nhưng bây giờ sẽ trả về một số nếu ít nhất một số trong một chữ số nhất định có một số. Ví dụ: $a1 = 4; //100 $b1 = 5; //101 tiếng vang $a1 | $b1; // bằng 5

    ~ (phủ định logic)

    đảo ngược tất cả các bit: nếu giá trị bit là 1 thì nó trở thành 0 và ngược lại. $b = 5; tiếng vang ~$b;

    x<

    x>>y - dịch chuyển số x sang phải theo y chữ số. Ví dụ: 16>>1 dịch 16 (là 10000 ở dạng nhị phân) sang phải một vị trí, dẫn đến 1000 hoặc 8 ở dạng thập phân

Nối chuỗi

Toán tử dấu chấm được sử dụng để nối chuỗi. Ví dụ: hãy kết nối một số dòng:

$a="Xin chào,"; $b=" thế giới"; tiếng vang $a . $b . "!";

Nếu các biến đại diện cho các loại khác ngoài chuỗi, chẳng hạn như số, thì giá trị của chúng được chuyển đổi thành chuỗi và sau đó thao tác nối chuỗi cũng xảy ra.