PHP so sánh hai biến

Trong PHP, loại biến được xác định theo cách nó được sử dụng*. Tùy thuộc vào những gì chúng ta đã gán cho biến, nó sẽ trở thành loại đó. Nó có nghĩa là gì?

[* Từ PHP 7, chúng ta có thể định nghĩa các loại đối số phương thức, từ 7. 4 có thể định nghĩa các loại thuộc tính của lớp. ]

$foo = "1";  // $foo is string
$foo += 0;   // $foo is integer
$foo *= 1.5; // $foo is float

Trong ví dụ trên, chuỗi "1" đã được gán cho biến, vì vậy biến là . Sau đó, hãy nhân type, then integer 0 was added to it so it changes its type to integer. After that, let's multiply the số nguyên biến với float 1. 5 . Biến bây giờ là loại float .

Ví dụ này cho thấy cách người vận hành thực hiện chuyển đổi tự động, trong trường hợp này là cộng và nhân. Chỉ cần một trong hai bên của hành động thuộc loại float thì cả hai sẽ được coi là . Trường hợp tương tự với and the result is also going to be of this type. The case is similar with số nguyên mặc dù float "mạnh hơn" và trong . integer + float both sides will be treated as float.

không bằng nhau

Hãy bình đẳng, trước tiên hãy xem tài liệu php

Bình đẳng. $a == $b, TRUE nếu $a bằng $b sau khi loại tung hứng

Nghe tầm thường và có vẻ tự nhiên. Gõ tung hứng kết quả ở chỗ, không cần phải suy nghĩ quá nhiều về việc so sánh cái gì, tất cả được thực hiện tự động. ;] Nhưng nó là?

Khi so sánh một biến có nhiều giá trị, hãy cân nhắc sử dụng in_array[], thay vì các biểu thức phức tạp if

Tôi thích mã rõ ràng, dễ đọc, đó là lý do tại sao tôi không thích những câu lệnh if với các biểu thức phức tạp. Ví dụ: hãy xem xét đoạn mã sau, đang kiểm tra một biến dựa trên một số giá trị

if [$test_variable === 'value1' || $test_variable === 'value2' || $test_variable === 'value3' || $test_variable === 'value4'] {
    // do something if $test_variable is equal to one of the strings
}

Điều này không đẹp và chắc chắn không cảm thấy rất KHÔ

Sử dụng in_array[] làm Điều kiện

Bây giờ hãy xem xét đoạn mã sau, lần này sử dụng hàm in_array làm biểu thức điều kiện của câu lệnh if

if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
    // do something if $test_variable is equal to one of the strings in the array
}

Theo tôi, đây là một giải pháp rõ ràng và dễ đọc hơn nhiều, đặc biệt nếu mã được duy trì bởi một nhóm các nhà phát triển, trong đó có thể lập trình viên đã viết mã sẽ không phải là người duy trì nó

Có thể tiến thêm một bước bằng cách trước tiên lưu trữ mảng trong một biến, sau đó sử dụng nó làm đối số, như sau

$test_array = [
    'value1',
    'value2',
    'value3',
    'value4'
];
if [in_array[$test_variable, $test_array] {
    // do something if $test_variable is equal to one of the strings in $test_array
}

Cách tiếp cận này rất rõ ràng và cực kỳ dễ đọc, đặc biệt nếu bản thân các mục của mảng trở nên phức tạp hơn

Các phương pháp khác

Sử dụng in_array chỉ là một cách để cải thiện khả năng đọc mã, một cách khác là câu lệnh

if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
    // do something if $test_variable is equal to one of the strings in the array
}
0, sẽ xử lý sự phức tạp của câu lệnh if. Đây là một cách để viết đoạn mã bằng cách sử dụng
if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
    // do something if $test_variable is equal to one of the strings in the array
}
2

switch [$test_variable] {
    case 'value1':
    case 'value2':
    case 'value3':
    case 'value4':
        $value_exists = true;
        break;
    default: 
        $value_exists = false;
}

if [$value_exists] {
    // do something if $value_exists is true
}

Tuy nhiên, sở thích cá nhân của tôi là sử dụng in_array, vì nó sạch hơn

kết thúc

Nếu bạn cho rằng cơ sở mã của mình cần tái cấu trúc, để cải thiện khả năng đọc [và hiệu suất], vui lòng liên hệ và chúng tôi sẽ sẵn lòng trợ giúp. Chúng tôi có nhiều năm kinh nghiệm lập trình, bằng nhiều ngôn ngữ, bao gồm PHP, Java, JavaScript và [S]CSS. Chúng tôi cũng chuyên phát triển WordPress, phát triển các chủ đề và plugin tùy chỉnh, đồng thời trợ giúp khách hàng về mọi cách thức hoạt động, bao gồm tối ưu hóa công cụ tìm kiếm

Tôi nên sử dụng == hay === PHP?

Cả hai đều là toán tử so sánh được sử dụng để so sánh hai hoặc nhiều giá trị. == Toán tử. Toán tử này dùng để kiểm tra các giá trị đã cho có bằng nhau hay không. Nếu đúng thì trả về true, ngược lại trả về false. === Nhà điều hành. Toán tử này dùng để kiểm tra các giá trị đã cho và kiểu dữ liệu của nó có bằng nhau hay không

Bạn có thể sử dụng == để so sánh các chuỗi trong PHP không?

Toán tử gán chỉ định biến ở bên trái để có một giá trị mới như biến ở bên phải, trong khi toán tử bằng == kiểm tra sự bằng nhau và trả về đúng hoặc sai theo . Ví dụ. Ví dụ này mô tả so sánh chuỗi bằng toán tử ==. . Example: This example describes the string comparison using the == operator.

Làm cách nào để so sánh hai chuỗi trong PHP?

Hàm strcmp[] so sánh hai chuỗi. Ghi chú. Hàm strcmp[] an toàn nhị phân và phân biệt chữ hoa chữ thường. Mẹo. Hàm này tương tự như hàm strncmp[], với sự khác biệt là bạn có thể chỉ định số lượng ký tự từ mỗi chuỗi sẽ được sử dụng để so sánh với hàm strncmp[].

Làm cách nào để kiểm tra xem biến có bằng chuỗi trong PHP không?

Hàm is_string[] kiểm tra xem biến có phải kiểu chuỗi hay không. Hàm này trả về true [1] nếu biến là kiểu chuỗi, ngược lại trả về false/nothing.

Chủ Đề