I love using "match" in my PHP code! 🔥

Function match trong PHP

Nếu trong trường hợp tùy vào điều kiện là cái gì thì bạn phải trả về giá trị tương ứng mình sẽ nghĩ ngay đến cái gì? 

1. If - else if - else

public function driver(string $driver): Driver{
    if ($driver === 'Github'){
        return new GithubDriver();
    } else if($driver === 'Gitlab'){
        return new GitlabDriver();
    } else {
        throw new GitException("The driver $driver is not valid");
    }
}

2. Switch - case

public function driver(string $driver): Driver {
    switch ($driver) 
    
        case 'Github': //code block break; 
        case 'Gitlab': //code block; break; 
        default: //code block 
    }
}

Cách nào cũng được hết cũng rỏ ràng nhưng mà nếu gọi là code gọn và hiệu quả nhất thì từ PHP 8 đã có cung cấp 1 function trên cả tuyệt vời match

match với phiên bản chặt chẽ và hiện đại hơn so với người anh switch và if

Trong một số trường hợp switch sẽ cung cấp linh hoạt hơn so với match, đặc biệt là với các khối code có nhiều dòng. Tuy nhiên, sự nghiêm ngặt của toán tử match là hấp dẫn và pattern matching sẽ là một yếu tố thay đổi cuộc chơi cho PHP.
Vậy match có gì khác so với ifswitch

1. Không ép kiểu 
2. Giá trị không xác định gây ra lỗi 
3. Chỉ có các biểu thức một dòng 
4. Kết hợp điều kiện 
5. Throwing exceptions 
6. Pattern matching

Với những phân tích bên trên thì theo bạn match , if hay switch?

Post a Comment

Previous Post Next Post