Đối với mã đầu tiên của bạn, bạn có thể sử dụng một sự thay đổi ngắn của câu trả lời được đưa ra bởi @shankardamodaran bằng cách sử dụng in_array[]
:
if [ !in_array[$some_variable, array['uk','in'], true ] ] {
hoặc thậm chí ngắn hơn với ký hiệu
if [ !in_array[$some_variable, ['uk','in'], true ] ] {
0 có sẵn kể từ Php 5.4 như được chỉ ra bởi @forty trong các bình luậnif [ !in_array[$some_variable, ['uk','in'], true ] ] {
giống như:
if [ $some_variable !== 'uk' && $some_variable !== 'in' ] {
... nhưng ngắn hơn. Đặc biệt nếu bạn so sánh nhiều hơn chỉ là 'uk' và 'trong'. Tôi không sử dụng một biến bổ sung [Shankar đã sử dụng $ OS] mà thay vào đó xác định mảng trong câu lệnh IF. Một số có thể thấy rằng bẩn, tôi thấy nó nhanh chóng và gọn gàng: D
Vấn đề với mã thứ hai của bạn là nó có thể dễ dàng được trao đổi với sự thật vì:
if [true] {
bằng nhau
if [ $some_variable !== 'uk' || $some_variable !== 'in' ] {
Bạn đang hỏi liệu giá trị của một chuỗi không phải là A hay không B. Nếu đó là A, nó chắc chắn cũng không phải là Cũng không phải là và không B. Vì vậy, tuyên bố đó luôn luôn [không tính đến luật Schrödingers ở đây] trả về đúng.
Không bằng nhiều giá trị python?
Updated on August 28th, 2020
Sử dụng toán tử không trong để kiểm tra xem một biến không bằng nhiều giá trị, ví dụ: Nếu my_str không trong nhiều_values:. Không trong toán tử sẽ trả về true nếu biến không bằng bất kỳ giá trị được chỉ định nào và sai nếu không.
Được xuất bản lần đầu vào ngày 28 tháng 9 năm 2018 được cập nhật vào ngày 28 tháng 8 năm 2020
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
}
Khi so sánh một biến với nhiều giá trị, hãy xem xét sử dụng in_array[]
, thay vì các biểu thức
if [ !in_array[$some_variable, ['uk','in'], true ] ] {
2 phức tạp.Tôi yêu mã sạch, dễ đọc, đó là lý do tại sao tôi không phải là fan hâm mộ của các câu lệnh if [ !in_array[$some_variable, ['uk','in'], true ] ] {
2 với các biểu thức phức tạp. Ví dụ, hãy xem xét đoạn trích sau đây, đang kiểm tra một biến so với một số giá trị:
if [ !in_array[$some_variable, ['uk','in'], true ] ] {
Điều này không đẹp và chắc chắn không cảm thấy rất khô khan.
if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
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
if [ !in_array[$some_variable, ['uk','in'], true ] ] {
4 làm biểu thức có điều kiện của câu lệnh if [ !in_array[$some_variable, ['uk','in'], true ] ] {
2:$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
}
Theo tôi, đây là một giải pháp sạch hơn nhiều mà dễ đọc hơn, đặc biệt là 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ách tiếp cận khác
Sử dụng
if [ !in_array[$some_variable, ['uk','in'], true ] ] {
4 chỉ là một cách để cải thiện khả năng đọc của mã, một cách khác là câu lệnh if [ !in_array[$some_variable, ['uk','in'], true ] ] {
7, sẽ xử lý sự phức tạp của câu lệnh if [ !in_array[$some_variable, ['uk','in'], true ] ] {
2. Ở đây, một cách để viết đoạn mã bằng cách sử dụng if [ !in_array[$some_variable, ['uk','in'], true ] ] {
9: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
}
Nhưng, sở thích cá nhân của tôi là sử dụng in_array, vì nó cảm thấy sạch hơn.
Gói lên
Nếu bạn nghĩ rằng bạn Codebase đang 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 sàng giúp đỡ. Chúng tôi có nhiều năm kinh nghiệm lập trình, trong một loạt các 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 và giúp khách hàng tất cả các cách thực hiện, bao gồm tối ưu hóa công cụ tìm kiếm.
Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều
// Xem ở đây | |
// Xem ở đây | |
// | |
// kiểm tra php nếu một biến không bằng nhau | |
// với nhiều điều kiện | |
if [! in_array [$ some_varable, mảng ['uk', 'in'], true]] { [ !in_array[$some_variable, array['uk','in'], true ] ] { | |
} | |
// giống như ở đây | |
if [$ some_varable! == 'uk' && $ some_varable! == 'in'] { [ $some_variable !== 'uk' && $some_variable !== 'in' ] { | |
} |