Hàm so sánh php

Hôm nay Freehost Page sẽ cùng bạn tìm hiểu các toán tử so sánh và logic vốn rất hay được dùng trong PHP mà chủ yếu là đi kèm với các hàm điều kiện (ví dụ như if). Nếu biết ngôn ngữ lập trình khác, bạn sẽ thấy tầm quan trọng và phổ biến của những toán tử này.

Toán tử so sánh

Toán tửTênVí dụ

Toán tử logic và thứ tự ưu tiên

Toán tửTênVí dụ

$tuoi >=18 && $gioi_tinh == ‘nam’

$tot_nghiep == ‘giỏi’ || $tot_nghiep == ‘khá’

  • Toán tử Và (&&) sẽ trả kết quả là TRUE khi và chỉ khi cả 2 phía của toán tử đều là TRUE, trả về FALSE khi chỉ cần một toán tử là FALSE (bạn có thể tìm hiểu thêm về TRUE và FALSE ở đây).
  • Toán tử Hoặc (||) sẽ trả về kết quả là TRUE khi chỉ cần một toán tử là TRUE, trả kết quả là FALSE khi và chỉ khi cả 2 phía của toán tử đều là FALSE.
  • Toán tử Phủ định (!) sẽ trả về kết quả ngược với chuỗi được phủ định, chẳng hạn nếu X là TRUE, thì !X có giá trị FALSE. Nếu X là FALSE thì !X có giá trị TRUE.
  • Để thay đổi thứ tự ưu tiên thực hiện của các toán tử chúng ta sử dụng dấu ngoặc đơn ()

Ý nghĩa của các toán tử Và, Hoặc, Phủ định không chỉ đúng trong PHP mà còn đúng trong các ngôn ngữ lập trình khác.

Nhầm lẫn giữa toán tử gán (=) và toán tử so sánh bằng (==) là lỗi lập trình PHP rất hay gặp, bạn nên chú ý điều này.

Bạn không cần phải mở đóng ngoặc quá nhiều

Ở các câu lệnh mẫu trên có lẽ bạn đã để ý rằng toán tử so sánh được ưu tiên hơn toán tử logic, do vậy trong câu lệnh như:

$a > $b && $c > 5

Thì PHP sẽ kiểm tra xem $a có lớn hơn $b không, rồi kiểm tra $c có lớn hơn 5 không, cuối cùng mới thực hiện toán tử logic. Nhờ vậy, bạn không phải viết câu lệnh dài dòng như thế này:

($a > $b) && ($c > 5)

Về khoảng cách giữa các biến và toán tử logic cũng như toán tử so sánh

Nếu bạn viết các toán tử sát sàn sạt vào biến, câu lệnh vẫn chạy bình thường, ví dụ:

$a = 6; $b = 5; $c = 7; if ($a>$b&&$c>5) {echo "cả hai điều kiện đều đúng";}

Nhưng nhìn chung chúng ta nên tránh kiểu viết này vì nó dễ gây nhầm lẫn. Chúng ta nên viết như sau:

$a = 6; $b = 5; $c = 7; if ($a > $b && $c > 5) {echo "cả hai điều kiện đều đúng";}

Hoặc nếu có lười, tiện thì viết như dưới cũng được:

$a = 6; $b = 5; $c = 7; if ($a>$b && $c>5) {echo "cả hai điều kiện đều đúng";}

Nhưng cần hết sức tránh toán tử logic bị dính vào các biến, vì như vậy rất khó phân biệt, dễ sai sót.

array array_diff ( array $array1, array $array2 [, array $array3 ...] );

So sánh array1 với array2 và trả về sự khác nhau.

Trả về một mảng chứa các sự khác nhau.

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Hàm so sánh php

Hàm so sánh php

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn ở Hà Nội có thể tham gia khóa học thứ 9 của vietjackteam (đang tuyển sinh) vào cuối tháng 10/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng. Khóa online= Đi phỏng vấn, Khóa offline= Đi phỏng vấn+ 1.5 tháng thực tập ngoài doanh nghiệp.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Từ tháng 4/2018, VietJack khuyến mại giá SỐC chỉ còn 250k cho khóa học, các bạn có thể trả lại tiền nếu không hài lòng về chất lượng trong 1 tháng, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại Khóa học Java Online trên Udemy

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

tong_hop_ham_trong_php.jsp

Chủ đề: PHP / MySQL

Trả lời: Sử dụngstrcmp()hàmPHP

Bạn có thể sử dụng hàmstrcmp() để dễ dàng so sánh hai chuỗi.Hàm này nhận hai chuỗistr1 str2 dưới dạng tham số.Hàmstrcmp() trả về kết quả < 0nếustr1 là ít hơnstr2;trả về> 0nếustr1lớn hơnstr2và 0 nếu chúng bằng nhau.

Hãy xem một ví dụ để hiểu về cơ bản hàm này hoạt động như thế nào:

Ví dụ

Hàm strcmp()so sánh hai chuỗi theo cách phân biệt chữ hoa chữ thường. Nếu bạn muốn so sánh không phân biệt chữ hoa chữ thường, bạn có thể sử dụng hàm strcasecmp().

Câu hỏi liên quan

Dưới đây là một số câu hỏi thường gặp khác liên quan đến chủ đề này:

  • Kết quả kiểu trả về JSON từ PHP Script
  • Cách xóa ký tự cuối cùng khỏi chuỗi trong PHP
  • Cách làm mới trang định kỳ bằng PHP
  • Cách đẩy cả khóa và giá trị vào một mảng trong PHP
  • Cách xóa phần tử mảng PHP theo giá trị không phải khóa

Trong bất kỳ loại lập trình nào, bạn sẽ luôn gặp tình huống cần so sánh các giá trị với nhau, nếu các giá trị là boolean hoặc số nguyên thì việc so sánh rất đơn giản. Nhưng nếu bạn muốn so sánh các chuỗi hoặc các phần của chuỗi thì có thể có nhiều hơn để so sánh, chẳng hạn như trường hợp của chuỗi bạn đang so sánh.

Trong hướng dẫn này, chúng ta sẽ xem xét tất cả các cách khác nhau mà bạn có thể so sánh các chuỗi trong PHP bằng cách sử dụng một số hàm PHP được xây dựng .

== toán tử

Cách phổ biến nhất bạn sẽ thấy khi so sánh hai chuỗi chỉ đơn giản bằng cách sử dụng toán tử == nếu hai chuỗi bằng nhau thì nó trả về giá trị true.

if('string1' == 'string1') { echo ' Strings match. '; } else { echo ' Strings do not match. '; }
Mã này sẽ trả về rằng các chuỗi khớp nhau, nhưng nếu các chuỗi không nằm trong cùng một trường hợp thì nó sẽ không khớp. Nếu tất cả các chữ cái trong một chuỗi đều viết hoa thì điều này sẽ trả về false và các chuỗi không khớp.if('string1' == 'STRING1') { echo ' Strings match. '; } else { echo ' Strings do not match. '; }

Điều này có nghĩa là chúng ta không thể sử dụng toán tử == khi so sánh các chuỗi từ đầu vào của người dùng, ngay cả khi chữ cái đầu tiên được viết hoa, nó vẫn sẽ trả về sai. Vì vậy, chúng ta cần sử dụng một số chức năng khác để giúp so sánh các chuỗi.

Chức năng strcmp

Một cách khác để so sánh các chuỗi là sử dụng hàm PHP strcmp , đây là hàm so sánh chuỗi an toàn nhị phân sẽ trả về 0 nếu các chuỗi khớp.

if(strcmp('string1', 'string1') == 0) { echo ' Strings match. '; } else { echo ' Strings do not match. '; }

Điều này nếu câu lệnh sẽ trả về true và echo mà chuỗi khớp với. Nhưng hàm này phân biệt chữ hoa chữ thường nên nếu một trong các chuỗi có chữ in hoa thì hàm sẽ không trả về 0.

Chức năng strcasecmp

Các ví dụ trước sẽ không cho phép bạn so sánh các chuỗi trường hợp khác nhau, hàm sau sẽ cho phép bạn so sánh các chuỗi không phân biệt chữ hoa chữ thường.

if(strcasecmp('string1', 'string1') == 0) { echo ' Strings match. '; } else { echo ' Strings do not match. '; } if(strcasecmp('string1', 'String1') == 0) { echo ' Strings match. '; } else { echo ' Strings do not match. '; } if(strcasecmp('string1', 'STRING1') == 0) { echo ' Strings match. '; } else { echo ' Strings do not match. '; }

Tất cả các câu lệnh if này sẽ trả về các chuỗi khớp với nhau, điều đó có nghĩa là chúng ta có thể sử dụng hàm này khi so sánh các chuỗi được người dùng nhập vào.