Hướng dẫn how to compare multiple values in php? - cách so sánh nhiều giá trị trong php?

Tôi muốn đi từ điều này:

if($var == 3 || $var == 4 || $var == 5 || $var =='string' || $var == '2010-05-16') {
   // execute code here
}

với điều này:

if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }

Có vẻ rất dư thừa để tiếp tục gõ

if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }
2, và tôi thấy rằng nó làm cho nó hơi cồng kềnh khi đọc. Có cách nào trong PHP để đơn giản hóa nó theo cách này không? Tôi đọc trên một bài đăng ở đây rằng khi sử dụng XQuery, bạn có thể sử dụng toán tử = như trong
if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }
3, v.v.

Hướng dẫn how to compare multiple values in php? - cách so sánh nhiều giá trị trong php?

Đã hỏi ngày 5 tháng 11 năm 2010 lúc 13:45Nov 5, 2010 at 13:45

0

Đặt các giá trị trong một mảng, sau đó sử dụng hàm in_array () để kiểm tra xem chúng có tồn tại không.

$checkVars = array(3, 4, 5, "string", "2010-05-16");
if(in_array($var, $checkVars)){
    // Value is found.
}

http://uk.php.net/manual/en/function.in-array.php

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 13:47Nov 5, 2010 at 13:47

Hướng dẫn how to compare multiple values in php? - cách so sánh nhiều giá trị trong php?

GreggreGreg

20.6K16 Huy hiệu vàng80 Huy hiệu bạc106 Huy hiệu đồng16 gold badges80 silver badges106 bronze badges

3

Nếu bạn cần thực hiện kiểm tra này rất thường xuyên và bạn cần hiệu suất tốt, đừng sử dụng tìm kiếm mảng chậm mà sử dụng tra cứu bảng băm nhanh thay vào đó: thay vào đó:

$vals = array(
    1 => 1,
    2 => 1,
    'Hi' => 1,
);

if (isset($vals[$val])) {
    // go!
}

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 14:11Nov 5, 2010 at 14:11

NikicnikicNikiC

99,7K36 Huy hiệu vàng188 Huy hiệu bạc224 Huy hiệu đồng36 gold badges188 silver badges224 bronze badges

3

if (in_array($var, array(3, 4, 5, 'string', '2010-05-16'))) {execute code here }

Hoặc, thay vào đó, một khối chuyển đổi:

switch ($var) {
    case 3:
    case 4:
    case 5:
    case 'string':
    case '2010-05-16':
        execute code here;
        break;
}

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 13:48Nov 5, 2010 at 13:48

Tdammerstdammertdammers

Huy hiệu vàng 20.1k11 gold badge37 silver badges56 bronze badges

1

Bạn có thể sử dụng

if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }
4.

if (in_array($var, array(3,4,5,"string","2010-05-16"))) { .... }

Hoặc bạn có thể sử dụng

if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }
4

if(in_array($var,array(4,5,'string','2010-05-16',true)) {

}

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 13:47Nov 5, 2010 at 13:47

GreggreMatTheCat

20.6K16 Huy hiệu vàng80 Huy hiệu bạc106 Huy hiệu đồng6 gold badges54 silver badges69 bronze badges

Nếu bạn cần thực hiện kiểm tra này rất thường xuyên và bạn cần hiệu suất tốt, đừng sử dụng tìm kiếm mảng chậm mà sử dụng tra cứu bảng băm nhanh thay vào đó: thay vào đó:

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 14:11

Nikicnikic

$checkVars= [3 => true, 
             4 => true, 
             5 => true, 
             "string" => true, 
             "2010-05-16" => true];

if(isset($checkVars[$var])
{
   // code here
}

99,7K36 Huy hiệu vàng188 Huy hiệu bạc224 Huy hiệu đồng: I have done some testing and it looks like this method is faster in most cases.

Hoặc, thay vào đó, một khối chuyển đổi:Jun 17, 2014 at 14:50

Hướng dẫn how to compare multiple values in php? - cách so sánh nhiều giá trị trong php?

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 13:48AbcAeffchen

Tdammerstdammer15 gold badges48 silver badges65 bronze badges

$vals = array (3, 4, 5, 'string', '2010-05-16');
if(in_array($var, $vals)) {
  //execute code here
}

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 13:47Nov 5, 2010 at 13:47

GreggreAndrew Sledge

20.6K16 Huy hiệu vàng80 Huy hiệu bạc106 Huy hiệu đồng2 gold badges27 silver badges30 bronze badges

Nếu bạn cần thực hiện kiểm tra này rất thường xuyên và bạn cần hiệu suất tốt, đừng sử dụng tìm kiếm mảng chậm mà sử dụng tra cứu bảng băm nhanh thay vào đó: thay vào đó:

if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }
0

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 14:11

if($var == (3, 4, 5, 'string', '2010-05-16')) { // execute code here }
1

NikicnikicFeb 14, 2014 at 21:32

== và === trong PHP là gì?

== Toán tử: Toán tử này được sử dụng để kiểm tra các giá trị đã cho bằng hoặc không. Nếu có, nó trả về đúng, nếu không nó sẽ trả về sai. Cú pháp: toán hạng1 == operand2. === Toán tử: Toán tử này được sử dụng để kiểm tra các giá trị đã cho và kiểu dữ liệu của nó bằng hoặc không.. If yes, it returns true, otherwise it returns false. Syntax: operand1 == operand2. === Operator: This operator is used to check the given values and its data type are equal or not.

Làm thế nào PHP so sánh dữ liệu của các loại khác nhau?

Trong PHP, các biến của các loại dữ liệu khác nhau có thể được so sánh bằng cách sử dụng toán tử so sánh lỏng lẻo là hai dấu hiệu bằng nhau (==). Nếu hai toán hạng của các loại khác nhau được so sánh bằng cách sử dụng so sánh lỏng lẻo thì có một nỗ lực để chuyển đổi một hoặc cả hai toán hạng và sau đó so sánh chúng.using the loose comparison operator which is two equal signs (==). If two operands of different types are compared using loose comparison then there is an attempt to convert one or both of the operands and then compare them.

Làm thế nào tôi có thể khớp hai số trong PHP?

Toán tử bằng nhau == Toán tử so sánh được gọi là toán tử bằng nhau là dấu hiệu gấp đôi dấu hiệu ==.Toán tử này chấp nhận hai đầu vào để so sánh và trả về giá trị thực nếu cả hai giá trị đều giống nhau (nó chỉ so sánh giá trị của biến, không phải loại dữ liệu) và trả về giá trị sai nếu cả hai giá trị không giống nhau. The comparison operator called Equal Operator is the double equal sign “==”. This operator accepts two inputs to compare and returns true value if both of the values are same (It compares only value of variable, not data types) and return a false value if both of the values are not same.

Làm gì?: Có nghĩa là trong PHP?

Toán tử độ phân giải phạm vi (còn được gọi là paamayim nekudotayim) hoặc theo cách đơn giản hơn, dấu hai chấm, là một mã thông báo cho phép truy cập vào các thuộc tính hoặc phương thức tĩnh hoặc được ghi đè của một lớp.Scope Resolution Operator (also called Paamayim Nekudotayim) or in simpler terms, the double colon, is a token that allows access to static, constant, and overridden properties or methods of a class.