Loại hỗn hợp PHP

PHP hỗ trợ khai báo kiểu có thể được sử dụng cho tham số, giá trị trả về và thuộc tính. Tuy nhiên, có thể có những trường hợp chúng ta cần một kiểu chưa được PHP hỗ trợ. Chúng ta có thể bỏ qua khai báo kiểu, nhưng điều này có thể gây ra nghĩa mơ hồ. Ví dụ: nhà phát triển quên chỉ định khai báo kiểu, nhà phát triển bỏ qua khai báo kiểu để mã tương thích với các phiên bản PHP cũ, v.v.

Tham gia bản tin của tôi

Kiểu hỗn hợp là một kiểu đặc biệt trong PHP cho biết biến có thể là bất kỳ kiểu nào. Hãy xem trong đoạn mã này cách chúng ta có thể xử lý việc này trong PHP 8. 0

 

 

 

Trước PHP 8. 0 kiểu “hỗn hợp” là kiểu ẩn của bất kỳ biến nào được khai báo và có thể được gán bất kỳ giá trị nào. Bây giờ trong PHP 8. 0, biến có thể được khai báo rõ ràng là hỗn hợp bằng cách sử dụng từ khóa “hỗn hợp”

hỗn hợp chỉ ra cho PHP rằng thuộc tính, tham số, trả về có thể là bất kỳ loại nào

Khai báo kiểu hỗn hợp đơn giản với từ khóa “mixed”

wheels = $wheels;

        return $wheels;
    }
}

Ở đây tôi được tuyên bố là tài sản hỗn hợp công khai $wheels. Và phương thức setWheels() chấp nhận một tham số loại hỗn hợp trong .

$car = new Car();

$car->wheels = 4;
$car->wheels = '4';

$car->setWheels('3');

echo $car->wheels;

 

Như PHP 8. 0 cũng hỗ trợ loại kết hợp, loại hỗn hợp tương đương với loại kết hợp với tất cả các loại như vậy

string|int|float|bool|null|array|object|callable|resource

 

Sử dụng gettype() và get_debug_type() với hỗn hợp

Hàm gettype()get_debug_type() . Khi được sử dụng với hỗn hợp, nó không trả về kiểu hỗn hợp vì nó là kiểu giả thay vào đó nó suy ra kiểu dữ liệu thực của biến.

Trong đoạn mã trước nếu bạn phát hiện loại thuộc tính $wheels

echo get_debug_type($car->wheels);   // string

Khi không có loại rõ ràng cho tham số hoặc thuộc tính lớp, PHP giả định rằng loại đó được trộn lẫn

Đối với các loại chức năng trả về nếu không có loại rõ ràng, loại bằng hỗn hợp. khoảng trống

 

Sử dụng hỗn hợp với loại công đoàn

Bởi vì loại hỗn hợp đại diện cho tất cả các loại, hỗn hợp không thể được sử dụng với các loại khác

public function setWheels(mixed|string $wheels) : mixed {
    $this->wheels = $wheels;
        
        return $wheels;
}

PHP Fatal error:  Type mixed can only be used as a standalone type in index.php

Mặc dù kiểu void nói rằng hàm không trả về gì, nhưng không thể sử dụng hỗn hợp với void trong các kiểu trả về của hàm

public function setWheels(mixed $wheels) : mixed|void {
}

PHP Fatal error:  Type mixed can only be used as a standalone type

 

Sử dụng hỗn hợp với nullable

Hỗn hợp không thể được sử dụng với nullable vì nó bao gồm loại null, vì vậy bất kỳ nỗ lực nào để làm như vậy nó sẽ gây ra lỗi như trên

public function setWheels(mixed|null $wheels) : mixed {}
public function setWheels(?mixed $wheels) : mixed {}
public function setWheels(mixed $wheels) : mixed|null {}
public function setWheels(mixed $wheels) : ?mixed {}
PHP Fatal error:  Type mixed can only be used as a standalone type

 

Nên sử dụng hỗn hợp hay liên kết

Luôn cụ thể hơn khi khai báo các biến sử dụng kiểu kết hợp, ví dụ: nếu hàm chấp nhận tham số có thể là số nguyên hoặc chuỗi thì tốt hơn nên khai báo là kết hợp int. chuỗi và không cần khai báo nó là hỗn hợp. Loại hỗn hợp phù hợp hơn cho các chức năng dự kiến ​​​​sẽ chấp nhận bất kỳ loại nào, ví dụ như chức năng ghi nhật ký

Kiểu dữ liệu hỗn hợp trong PHP là gì?

Hỗn hợp ¶ Loại hỗn hợp chấp nhận mọi giá trị . Nó tương đương với đối tượng kiểu kết hợp. nguồn. mảng. sợi dây. trôi nổi. int. bool. vô giá trị. Có sẵn kể từ PHP 8. 0.

Các loại khác nhau trong PHP 7 là gì?

Các loại đối số trong PHP là gì?

PHP hỗ trợ chuyển đối số theo giá trị (mặc định), chuyển theo tham chiếu và giá trị đối số mặc định .

Các loại chữ trong PHP là gì?

Kiểu chữ ¶ . PHP có hỗ trợ cho hai loại chữ. false kể từ PHP 8. 0. 0 và đúng kể từ PHP 8. 2 .