• About

Viet PHP

PHP = ['newbie' => 'cơ bản', 'coder' => 'nâng cao', 'professional'=>'chuyên sâu']

  • PHP
    • OOP
    • Basic
  • WordPress
  • Bài tập PHP
  • PHP 7
Home PHP Toán tử so sánh trong PHP

Toán tử so sánh trong PHP

Posted on April 3, 2018 Written by admin Leave a Comment

Đầu tiên là == và ===

Hai toán tử này trả về BOOLEAN TRUE hoặc FALSE, tuy nhiên rất khác nhau. Đồng thời, việc so sánh giữa các loại biến cũng khác nhau.

1) == là toán tử so sánh tương đương (equivalent) còn === là so sánh tương đồng. Toán tử === chỉ trả về TRUE khi hai biến so sánh giống nhau về DATA và TYPE.

Ví dụ

$x = '12'; //string

$y = 12; //integer.

if ($x==$y){
echo "Tương đương nhé";

}else{ 
	echo "Hem tương đương"; }

if($x===$y){

echo "Tương đồng nhé";

}else{ echo "Không đương đồng hen";}

 

Với object: Khi so sánh tương đương (==), các biến là object được coi là tương đương (==) nếu chúng có cùng thuộc tính và giá trị, và là những instance được khởi tạo của cùng một class.

Khi so sánh tương đồng (===), các biến là object chỉ tương đồng (identical) nếu và chỉ nếu chúng chỉ tới cùng một instance của cùng một class.

Sau đây là một ít mở rộng về toán tử so sánh trong PHP, có thể tìm thấy trong bảng này.

Lưu ý toán tử spaceship <=> mới có từ bản 7.0, luôn trả về 1, 0, -1, tương đương với lớn hơn, bằng và nhỏ hơn, khi so sánh. Toán tử này có thể so sánh integer, float, string, array và object.

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
 
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
 
echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1
 
// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1
 
// Objects
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 0
 
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "c"]; 
echo $a <=> $b; // -1
 
$a = (object) ["a" => "c"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 1
 
// only values are compared
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo $a <=> $b; // 1

Noted:

Nếu so sánh một integer/float (số) với một string dạng số (ví dụ $a = ’12’;), mỗi string sẽ convert sang dạng số và so sánh số học.

Luật so sánh như sau:

toán tử so sánh PHP

– null sang string:  chuyển null sang dạng string rỗng “”;

– bool hay null so với các loại khác: chuyển sang bool.

-array và array : array ít thành viên sẽ nhỏ hơn, nếu key trong array 1 không tìm thấy trong array 2 thì không tương đương, nếu không thì so sánh bằng giá trị.

-array so với các loại biến khác: array luôn bự hơn.

-object so với các loại biến khác: object luôn bự hơn.

Filed Under: Basic, PHP

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • 11 basic PHP questions.
  • How to pass a variable to the callback function provided by Laravel Collection
  • Cài Sodium trên PHP 7.2 Centos
  • Dependency Injection và Container
  • Hàm array_map() và array_walk()

Recent Comments

  • admin on Dependency Injection
  • Vượng on Dependency Injection
  • vượng on Dependency Injection
  • vượng on Dependency Injection
  • vượng on Dependency Injection

Archives

  • November 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018

Categories

  • Bài tập PHP
  • Basic
  • Laravel
  • OOP
  • OOP
  • PHP
  • String
  • Uncategorized
  • WordPress

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Copyright © 2020 · Focus Pro on Genesis Framework · WordPress · Log in