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

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ào

Cá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
4 làm khai báo kiểu sẽ yêu cầu giá trị phải là lớp hoặc giao diệ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
5
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, thay vì kiểu bool

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
7

Đầ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
1

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

cá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
3

Ví 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
9

Nullable 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[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
20]. Do đó,
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
21 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
22 giống hệt nhau

Ghi 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 là

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
23. Đ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ểu

Ví dụ #2 Cách cũ để biến các đối số thành null

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
24

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
25

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
26

Ví 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[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
    
    27 hoặc
    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
    
    28 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[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
29 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
20 là bí danh của lớp, thì
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
21 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à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
29 hoặc
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
20. Tương tự, nếu lớ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
24, thì
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
21 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ò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
29

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
27

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
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 2
29

ví 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
20

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
21

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
22

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
23

Đầu ra của ví dụ trên trong PHP 8

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

Ví 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
24

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
25

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
26

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
27

Đầu ra của ví dụ trên trong PHP 8

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

Ví 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
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 2
29

Ví dụ trên sẽ xuất ra

Ví dụ #6 Trả về một đối tượ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
24

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
51

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
52

Ví dụ trên sẽ xuất ra

Ví dụ #7 Khai báo kiểu đối số 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
24

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
54

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
26

Ví 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
56

đá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
57

Để 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
58 được sử dụng vớ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
57

Ghi 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

Có bao nhiêu hàm PHP?

PHP có hơn 700 hàm được tích hợp để thực hiện các tác vụ khác nhau

Các hàm đầu ra khác nhau trong PHP là gì?

Hàm kiểm soát đầu ra PHP

Tên hàm trong PHP là gì?

Tên hàm tuân theo các quy tắc giống như các nhãn khác trong PHP. Tên hàm hợp lệ bắt đầu bằng một chữ cái hoặc dấu gạch dưới, theo sau là một số chữ cái, số hoặc dấu gạch dưới bất kỳ . Là một biểu thức chính quy, nó sẽ được thể hiện như vậy. ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.

Tại sao các chức năng được sử dụng trong PHP?

Các chức năng của PHP tương tự như các ngôn ngữ lập trình khác. Hàm là một đoạn mã nhận thêm một đầu vào ở dạng tham số và thực hiện một số xử lý rồi trả về một giá trị

Chủ Đề