Nhập gợi ý phiên bản PHP

Trước tiên, hãy thử truyền vào hàm một đối số không phải là một mảng để xem điều gì có thể xảy ra trong trường hợp như vậy

calcNumMilesOnFullTank("Toyota");

Kết quả
Lỗi nghiêm trọng có thể bắt được. Đối số 1 được chuyển đến calcNumMilesOnFullTank() phải là kiểu mảng, chuỗi đã cho

Lỗi này là một mô tả chính xác về những gì đã xảy ra với mã của chúng tôi. Từ đó, chúng ta có thể hiểu rằng hàm mong đợi một biến mảng chứ không phải một chuỗi

Hãy viết lại mã và chuyển vào hàm một mảng với các mục dự kiến, bao gồm tên kiểu máy, thể tích bể và mpg (dặm trên gallon)

$models = array(
  array('Toyota', 12, 44),
  array('BMW', 13, 41)
);
 
calcNumMilesOnFullTank($models);

Kết quả
Toyota. 528
xe BMW. 533

Bây giờ nó đang hoạt động vì chúng ta đã truyền cho hàm mảng mà nó dự kiến ​​sẽ nhận được

PHP có hỗ trợ kiểu gợi ý cho các kiểu dữ liệu cơ bản không?

nó phụ thuộc

Trong khi PHP5 không cho phép gợi ý kiểu cho các kiểu dữ liệu cơ bản (số nguyên, số float, chuỗi và booleans), PHP7 không hỗ trợ gợi ý kiểu vô hướng

PHP5 không hỗ trợ gợi ý kiểu cho các kiểu dữ liệu cơ bản như số nguyên, booleans hoặc chuỗi. Vì vậy, khi chúng ta cần xác thực rằng một đối số thuộc về một kiểu dữ liệu cơ bản, chúng ta có thể sử dụng một trong các hàm họ “is_” của PHP. Ví dụ

  • is_bool - để tìm hiểu xem một biến có phải là boolean (đúng hay sai)
  • is_int - để tìm hiểu xem một biến có phải là số nguyên không
  • is_float - để tìm hiểu xem một biến có phải là số float hay không (3. 14, 1. 2e3 hoặc 3E-10)
  • is_null - để tìm hiểu xem một biến có phải là null hay không
  • is_string - để tìm hiểu xem một biến có phải là một chuỗi không

Mặt khác, PHP7 không hỗ trợ gợi ý kiểu vô hướng. Các loại được hỗ trợ là. số nguyên, số float, chuỗi và booleans

Kể từ PHP 7 Gợi ý kiểu đang được gọi là khai báo Kiểu. PHP cho phép nhà phát triển cụ thể hơn về chức năng nào đang nhận và trả lại. Bạn có thể tùy ý chỉ định loại tham số mà hàm cần và loại kết quả mà hàm sẽ trả về. Để chỉ định khai báo kiểu, tên kiểu phải được thêm vào trước tên tham số. Trước tiên hãy xem một ví dụ

int $var ) {
 echo $var;
}

$v = 200;
$y = 'hello world';

printMe( $v );
//Prints 200

printMe( $y );
//Prints fatal error

Trong ví dụ trên, chúng tôi đã chỉ định rằng tham số

Fatal error: Uncaught TypeError: printMe(): Argument #1 ($var) must be of type int, string given...
4 được truyền cho hàm
Fatal error: Uncaught TypeError: printMe(): Argument #1 ($var) must be of type int, string given...
5 phải là một số
Fatal error: Uncaught TypeError: printMe(): Argument #1 ($var) must be of type int, string given...
6 (số nguyên). Nếu tham số được truyền thuộc loại khác thì PHP sẽ tạm dừng và hiển thị thông báo lỗi

Fatal error: Uncaught TypeError: printMe(): Argument #1 ($var) must be of type int, string given...

Khai báo kiểu trả về

PHP (kể từ phiên bản 7) cũng hỗ trợ “Khai báo kiểu trả về”. Tương tự như “Khai báo kiểu”, khai báo kiểu trả về chỉ định loại giá trị sẽ được trả về từ một hàm. Để chỉ định khai báo kiểu trả về, tên kiểu (theo sau là dấu hai chấm

Fatal error: Uncaught TypeError: printMe(): Argument #1 ($var) must be of type int, string given...
7) phải được thêm vào sau dấu ngoặc đơn đóng của hàm. Xem ví dụ sau

________số 8_______

Xử lý lỗi trong khai báo kiểu

Nếu giá trị đã cho là loại không chính xác, thì lỗi sẽ được tạo. trong PHP 5, đây sẽ là một lỗi nghiêm trọng có thể khôi phục được, trong khi PHP 7 sẽ đưa ra một ngoại lệ

Fatal error: Uncaught TypeError: printMe(): Argument #1 ($var) must be of type int, string given...
8

Trong ví dụ sau, chúng tôi sẽ chuyển kiểu dữ liệu không chính xác, chuỗi

Ví dụ trên in lỗi sau trên màn hình

Fatal error: Uncaught TypeError: Argument 1 passed to printMe() must be of the type integer, string given...

Danh sách các loại khai báo hợp lệ

Chúng ta có thể sử dụng các kiểu dữ liệu sau cho “khai báo kiểu” và “khai báo kiểu trả về”

  • đối tượng (PHP 7. 2)

Nhập Tuyên bố trong Lớp hoặc Giao diện

Tham số phải là một

function modulus(int $a, int $b) : int {
 return $a % $b;
}

$m = modulus ( 52 , 12 ); // 4
8 cùng lớp với phương thức được xác định trên. Điều này chỉ có thể được sử dụng trên các phương thức lớp và thể hiện

Tôi có nên sử dụng gợi ý kiểu trong PHP không?

Kể từ PHP 5, bạn có thể sử dụng gợi ý kiểu để chỉ định kiểu dữ liệu dự kiến ​​của một đối số trong khai báo hàm . Khi bạn gọi hàm, PHP sẽ kiểm tra xem các đối số có thuộc loại được chỉ định hay không. Nếu không, thời gian chạy sẽ phát sinh lỗi và quá trình thực thi sẽ bị tạm dừng.

Gợi ý kiểu trong PHP là gì?

Gợi ý loại là khái niệm cung cấp các gợi ý để hoạt động cho loại đối số dự kiến . Ví dụ: Nếu chúng ta muốn thêm một số nguyên trong khi viết hàm cộng, chúng ta đã đề cập đến kiểu dữ liệu (trong trường hợp này là số nguyên) của tham số.

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

Loại hỗn hợp trong PHP 8 là gì?

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.