Loại
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 26 đại diện cho bất kỳ giá trị nào trong Hack
Ví dụ, chức năng sau có thể được thông qua bất cứ điều gì
function takes_anything[mixed $m]: void {}
function call_it[]: void {
takes_anything["foo"];
takes_anything[42];
takes_anything[new MyClass[]];
}
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 26 tương đương với
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 28.
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 29 đại diện cho bất kỳ giá trị nào ngoại trừ
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 20
Chúng tôi khuyên bạn nên tránh sử dụng
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 26 bất cứ khi nào bạn có thể sử dụng một loại cụ thể hơnTham gia bản tin của tôi
Kiểu hỗn hợp trong PHP 8 là kiểu kết hợp tích hợp mới. Loại hỗn hợp tương đương với mảng. bool. gọi được. int. trôi nổi. Trộn loại không hoàn toàn giống như loại bỏ hoàn toàn loại
Điều đó có nghĩa là, lập trình viên chỉ quên viết nó
Đôi khi lập trình viên muốn bỏ qua một số loại cụ thể để giữ khả năng tương thích với phiên bản cũ hơn
Loại hỗn hợp trong PHP 8 có thể lấy bất kỳ loại thuộc tính/trả về/tham số nào. Chúng ta có thể nói rằng nó bao gồm null, có thể gọi được, tài nguyên, tất cả các đối tượng lớp hoặc tất cả các loại vô hướng trong PHP. Loại hỗn hợp tương đương với loại Union
int|float|bool|string|null|array|object|callable|resource
Thí dụ. Loại hỗn hợp trong PHP 8
Trong PHP 8, Hỗn hợp là một loại giả/ảo. Nó đại diện cho một số loại mà PHP có thể xử lý, điều đó có nghĩa là chúng ta không thể chuyển một biến thành hỗn hợp vì nó không tạo ra bất kỳ logic nào
Các khai báo kiểu có thể được thêm vào các đối số hàm, giá trị trả về và kể từ PHP 7. 4. 0, thuộc tính lớp. Họ đảm bảo rằng giá trị thuộc loại được chỉ định tại thời điểm gọi, nếu không thì TypeError sẽ bị ném
Mọi loại đơn lẻ mà PHP hỗ trợ, ngoại trừ tài nguyên đều có thể được sử dụng trong khai báo loại đất của người dùng. Trang này chứa nhật ký thay đổi về tính khả dụng của các loại khác nhau và tài liệu về việc sử dụng chúng trong khai báo loại
Ghi chú
Khi một lớp triển khai một phương thức giao diện hoặc triển khai lại một phương thức đã được định nghĩa bởi lớp cha, thì nó phải tương thích với định nghĩa đã nói ở trên. Một phương pháp là tương thích nếu nó tuân theo các quy tắc phương sai
Nhật ký thay đổi
Phiên bảnMô tả8. 2. 0Hỗ trợ cho các loại DNF đã được thêm vào. 8. 2. 0Hỗ trợ cho kiểu chữ đúng đã được thêm vào. 8. 2. 0Các loại null và false hiện có thể được sử dụng độc lập. 8. 1. 0Hỗ trợ cho các loại giao lộ đã được thêm vào. 8. 1. 0Trở về theo tham chiếu từ hàm void hiện không được dùng nữa. 8. 1. 0Hỗ trợ cho loại chỉ trả lại chưa bao giờ được thêm vào. 8. 0. 0Hỗ trợ hỗn hợp đã được thêm vào. 8. 0. 0Hỗ trợ cho kiểu tĩnh chỉ trả lại đã được thêm vào. 8. 0. 0Hỗ trợ cho các loại công đoàn đã được thêm vào. 7. 2. 0Hỗ trợ cho đối tượng đã được thêm vào. 7. 1. 0Hỗ trợ cho iterable đã được thêm vào. 7. 1. 0Hỗ trợ cho khoảng trống đã được thêm vào. 7. 1. 0Hỗ trợ cho các loại nullable đã được thêm vàoCác loại cơ sở Ghi chú sử dụng
Các loại cơ sở có hành vi đơn giản với một số cảnh báo nhỏ được mô tả trong phần này
các loại vô hướng
Cảnh báo
Bí danh tên cho các loại vô hướng [bool, int, float, string] không được hỗ trợ. Thay vào đó, chúng được coi là tên lớp hoặc giao diện. Ví dụ: sử dụng
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
2 làm khai báo kiểu sẽ yêu cầu giá trị phải là lớp hoặc giao diệnint[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
3int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
2, thay vì kiểu boolint[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
5Đầu ra của ví dụ trên trong PHP 8
Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
khoảng trống
Ghi chú
Trả về bằng tham chiếu từ hàm void không được dùng kể từ PHP 8. 1. 0, bởi vì một chức năng như vậy là mâu thuẫn. Trước đây, nó đã phát ra
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
0 sau đây khi được gọi.int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
1int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
2các loại có thể gọi
Loại này không thể được sử dụng làm khai báo loại thuộc tính lớp
Ghi chú. Không thể chỉ định chữ ký của chức năng
Loại khai báo trên các tham số truyền qua tham chiếu
Nếu tham số chuyển qua tham chiếu có khai báo kiểu, thì kiểu của biến chỉ được kiểm tra khi nhập hàm, khi bắt đầu gọi, chứ không phải khi hàm trả về. Điều này có nghĩa là một hàm có thể thay đổi kiểu tham chiếu của biến
Ví dụ #1 Tham số truyền qua tham chiếu đã nhập
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
3Ví dụ trên sẽ xuất ra một cái gì đó tương tự như
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
Loại tổng hợp Ghi chú sử dụng
Các khai báo kiểu tổng hợp phải tuân theo một số hạn chế và sẽ thực hiện kiểm tra dự phòng tại thời điểm biên dịch để ngăn các lỗi đơn giản
thận trọng
Trước PHP 8. 2. 0 và việc giới thiệu các loại DNF, không thể kết hợp các loại giao nhau với các loại liên kết
các loại công đoàn
Cảnh báo
Không thể kết hợp hai loại chữ
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
4 vàint[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
5 với nhau trong một loại kết hợp. Sử dụng bool thay thếthận trọng
Trước PHP 8. 2. 0, vì
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
4 và null không thể được sử dụng làm loại độc lập, loại hợp nhất chỉ bao gồm các loại này không được phép. Điều này bao gồm các loại sau.int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
4,int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
8 vàint[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
9Nullable loại cú pháp đường
Một khai báo loại cơ sở duy nhất có thể được đánh dấu là vô giá trị bằng cách đặt trước loại có dấu chấm hỏi [
int|float|bool|string|null|array|object|callable|resource
40]. Do đó,int|float|bool|string|null|array|object|callable|resource
41 vàint|float|bool|string|null|array|object|callable|resource
42 giống hệt nhauGhi chú. Cú pháp này được hỗ trợ kể từ PHP 7. 1. 0 và có trước hỗ trợ các kiểu kết hợp tổng quát
Ghi chú
Cũng có thể đạt được các đối số nullable bằng cách đặt giá trị mặc định
int|float|bool|string|null|array|object|callable|resource
43. Điều này không được khuyến nghị vì nếu giá trị mặc định bị thay đổi trong một lớp con, một vi phạm tương thích kiểu sẽ được nêu ra vì kiểu null sẽ cần được thêm vào khai báo kiểuVí dụ #2 Cách cũ để biến các đối số thành null
int|float|bool|string|null|array|object|callable|resource
44int|float|bool|string|null|array|object|callable|resource
45int|float|bool|string|null|array|object|callable|resource
46Ví dụ trên sẽ xuất ra
Các loại trùng lặp và dư thừa
Để bắt các lỗi đơn giản trong khai báo kiểu tổng hợp, các kiểu dư thừa có thể được phát hiện mà không thực hiện tải lớp sẽ dẫn đến lỗi thời gian biên dịch. Điêu nay bao gôm
- Mỗi loại giải quyết tên chỉ có thể xảy ra một lần. Các loại như
int|float|bool|string|null|array|object|callable|resource
47 hoặcint|float|bool|string|null|array|object|callable|resource
48 dẫn đến lỗi - Sử dụng kết quả hỗn hợp trong một lỗi
- Đối với các loại công đoàn
- Nếu bool được sử dụng, false hoặc true không thể được sử dụng bổ sung
- Nếu đối tượng được sử dụng, các loại lớp không thể được sử dụng bổ sung
- Nếu iterable được sử dụng, mảng và Traversable không thể được sử dụng bổ sung
- Đối với các loại giao lộ
- Sử dụng loại không phải là loại lớp dẫn đến lỗi
- Sử dụng bản thân, cha mẹ hoặc tĩnh dẫn đến lỗi
- Đối với các loại DNF
- Nếu một loại chung chung hơn được sử dụng, thì loại hạn chế hơn sẽ không cần thiết
- Sử dụng hai loại giao lộ giống hệt nhau
Ghi chú. Điều này không đảm bảo rằng loại là "tối thiểu", vì làm như vậy sẽ yêu cầu tải tất cả các loại lớp đã sử dụng
Ví dụ: nếu
int|float|bool|string|null|array|object|callable|resource
49 vàWarning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
40 là bí danh của lớp, thìWarning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
41 vẫn là một loại liên kết hợp pháp, mặc dù nó có thể được rút gọn thànhint|float|bool|string|null|array|object|callable|resource
49 hoặcWarning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
40. Tương tự, nếu lớpWarning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
44, thìWarning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
41 cũng là một loại liên minh hợp pháp, mặc dù nó có thể được giảm xuống chỉ cònint|float|bool|string|null|array|object|callable|resource
49Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
47Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
48Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
49ví dụ
Ví dụ #3 Khai báo kiểu lớp cơ bản
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
40int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
41int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
42int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
43Đầu ra của ví dụ trên trong PHP 8
int|float|bool|string|null|array|object|callable|resource
4Ví dụ #4 Khai báo kiểu giao diện cơ bản
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
44int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
45int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
46int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
47Đầu ra của ví dụ trên trong PHP 8
Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2 Fatal error: Uncaught TypeError: test[]: Argument #1 [$param] must be of type boolean, bool given, called in - on line 3 and defined in -:2 Stack trace: #0 -[3]: test[true] #1 {main} thrown in - on line 2
4Ví dụ #5 Khai báo kiểu trả về cơ bản
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
48int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
49Ví dụ trên sẽ xuất ra
Ví dụ #6 Trả về một đối tượng
int|float|bool|string|null|array|object|callable|resource
44int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
71int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
72Ví dụ trên sẽ xuất ra
Ví dụ #7 Khai báo kiểu đối số nullable
int|float|bool|string|null|array|object|callable|resource
44int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
74int|float|bool|string|null|array|object|callable|resource
46Ví dụ trên sẽ xuất ra
Ví dụ #8 Khai báo kiểu trả về Nullable
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
76đánh máy nghiêm ngặt
Theo mặc định, PHP sẽ ép buộc các giá trị của loại sai vào khai báo loại vô hướng dự kiến nếu có thể. Ví dụ: một hàm được cung cấp một int cho một tham số mong đợi một chuỗi sẽ nhận được một biến kiểu chuỗi
Có thể bật chế độ nghiêm ngặt trên cơ sở từng tệp. Ở chế độ nghiêm ngặt, chỉ một giá trị tương ứng chính xác với khai báo kiểu mới được chấp nhận, nếu không TypeError sẽ bị ném. Ngoại lệ duy nhất cho quy tắc này là một giá trị int sẽ vượt qua một khai báo kiểu float
Cảnh báo
Các lời gọi hàm từ bên trong các hàm bên trong sẽ không bị ảnh hưởng bởi khai báo
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
77Để kích hoạt chế độ nghiêm ngặt, câu lệnh
int[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
78 được sử dụng với khai báoint[1] Fatal error: Uncaught TypeError: array_baz[]: Argument #1 [$param] must be of type array, int given, called in - on line 9 and defined in -:2 Stack trace: #0 -[9]: array_baz[1] #1 {main} thrown in - on line 2
77Ghi chú
Nhập nghiêm ngặt áp dụng cho các lệnh gọi hàm được thực hiện từ bên trong tệp có bật tính năng nhập nghiêm ngặt, không áp dụng cho các hàm được khai báo trong tệp đó. Nếu một tệp không được kích hoạt kiểu gõ nghiêm ngặt thực hiện lệnh gọi đến một hàm được xác định trong tệp có kiểu gõ nghiêm ngặt, tùy chọn của người gọi [gõ cưỡng chế] sẽ được tôn trọng và giá trị sẽ bị ép buộc
Bạn có thể khai báo kiểu biến trong PHP không?
Ghi chú. Khi bạn gán một giá trị văn bản cho một biến, hãy đặt dấu ngoặc kép xung quanh giá trị. Ghi chú. Không giống như các ngôn ngữ lập trình khác, PHP không có lệnh khai báo biến . Nó được tạo ngay khi bạn gán giá trị cho nó lần đầu tiên. Hãy nghĩ về các biến như các thùng chứa để lưu trữ dữ liệu.Các kiểu kết hợp trong PHP là gì?
“Kiểu hợp nhất” chấp nhận giá trị của nhiều loại dữ liệu khác nhau, thay vì một loại duy nhất . Nếu ngôn ngữ lập trình hỗ trợ các kiểu kết hợp, bạn có thể khai báo một biến theo nhiều kiểu. Ví dụ: có thể có một hàm có thể chấp nhận biến kiểu “string” hoặc “float” làm tham số.PHP có loại an toàn không?
Giới học thuật thường nói đó là thuộc tính của một ngôn ngữ nhất định. trình biên dịch của ngôn ngữ đó có cấm lỗi kiểu khi thực thi chương trình không? . PHP will never be type safe [PHP's compiler hardly prohibits any type errors].Các kiểu dữ liệu trong PHP là gì?
PHP hỗ trợ các kiểu dữ liệu sau. .Sợi dâysố nguyênFloat [số dấu phẩy động - còn gọi là double]BooleanMảngSự vậtNguồn- Mỗi loại giải quyết tên chỉ có thể xảy ra một lần. Các loại như