Hướng dẫn php enum could not be converted to string - php enum không thể chuyển đổi thành chuỗi
Tôi tự hỏi tại sao không thể cung cấp triển khai Show IDE nói rằng "enum có thể không bao gồm '__tostring'". Tuy nhiên, đó là điều đầu tiên tôi nghĩ về một khi tôi đã tạo ra Enum. Trước đây tôi đã sử dụng các đối tượng giá trị đóng gói các chuỗi trong mã của mình, sử dụng quá trình đúc chuỗi khi cần thiết. Bây giờ tôi muốn di chuyển chúng vào các enums, nhưng những người đó chống lại.
Hỏi ngày 5 tháng 12 năm 2021 lúc 15:25Dec 5, 2021 at 15:25
6 Tôi nghĩ rằng bạn không nên sử dụng Enum nếu bạn muốn sử dụng nó như 0 trong một lớp học thông thường. Cân nhắc việc tạo một lớp trừu tượng thay vì như thế này:
Ngoài việc sử dụng đúng enum, trong trường hợp của bạn, bạn có thể sử dụng:
1hoặc
2Đã trả lời ngày 14 tháng 7 lúc 13:52Jul 14 at 13:52
Như Chris đề cập, các phương pháp ma thuật không được phép. Đối với 2 (?) Để có được giá trị chuỗi của một duy nhất, bạn chỉ có thể sử dụng 3.Nếu bạn muốn các giá trị chuỗi của tất cả chúng, chỉ cần thêm một vòng lặp trong một phương thức:
Đã trả lời ngày 7 tháng 2 lúc 22:02Feb 7 at 22:02
Puggan Sepuggan SEPuggan Se 5.6402 Huy hiệu vàng23 Huy hiệu bạc46 Huy hiệu đồng2 gold badges23 silver badges46 bronze badges 1 Đối với các giá trị đơn giản, sử dụng "const" thay vì "trường hợp":
Đã trả lời ngày 7 tháng 10 lúc 14:34Oct 7 at 14:34
Việc thực hiện các công việc của Jsonserializable nếu trường hợp sử dụng của bạn liên quan đến việc chuyển đổi thuộc tính Enum thành JSON.
Đã trả lời ngày 10 tháng 6 lúc 22:38Jun 10 at 22:38
Cnizzardinicnizzardinicnizzardini 1.1671 Huy hiệu vàng13 Huy hiệu bạc26 Huy hiệu đồng1 gold badge13 silver badges26 bronze badges 2 Sự mô tảMã sau:
class EnumTest extends Unit
{
public function testArrayIntersect(): void
{
$array1 = [TestEnum::TEST];
$array2 = [TestEnum::TEST];
$actual = \array_intersect($array1, $array2);
self::assertCount(1, $actual);
}
}
enum TestEnum {
case TEST;
} Dẫn đến đầu ra này:
Nhưng tôi dự kiến bài kiểm tra sẽ vượt qua và nội bộ \ mảng_intersect để có thể làm việc với các enum. Điều tương tự cũng xảy ra với \ mảng_diff, vì vậy hầu hết các chức năng mảng khác cũng vậy Phiên bản PHPPhp 8.1.0 Hệ điều hànhphp:8.1-fpm-buster Làm thế nào để sử dụng Enums trong Php 8. 1?Enums giữ một giá trị, tức là một enum được hỗ trợ, phải:.. Tuyên bố loại vô hướng trong khai báo enum.Chỉ cho phép chuỗi hoặc int mới được phép .. Gán giá trị cho tất cả các trường hợp .. Giữ các giá trị của cùng loại vô hướng.Nó không được phép lưu trữ các giá trị chuỗi và int hỗn hợp .. Các trường hợp và giá trị được gán là duy nhất .. Enum trong PHP là gì?Trong PHP, Enums là một loại đối tượng đặc biệt.Bản thân Enum là một lớp và các trường hợp có thể của nó là tất cả các đối tượng đơn lẻ của lớp đó.Điều đó có nghĩa là các trường hợp enum là các đối tượng hợp lệ và có thể được sử dụng ở bất cứ đâu mà một đối tượng có thể được sử dụng, bao gồm cả kiểm tra loại.a special kind of object. The Enum itself is a class, and its possible cases are all single-instance objects of that class. That means Enum cases are valid objects and may be used anywhere an object may be used, including type checks. |