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
}
2switch [$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