Loại PHP gợi ý nhiều loại

Trong bài viết này, bạn sẽ khám phá cách khai báo các loại tham số hàm và giá trị trả về bằng gợi ý kiểu PHP

Bắt đầu với gợi ý kiểu PHP

Một ngôn ngữ được gõ động là PHP. Không cần khai báo kiểu cho tham số khi định nghĩa hàm. Ví dụ

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1,2);
echo $result; // 3

Tổng của hai tham số được trả về bởi phương thức add(), phương thức này nhận hai đối số. Trong hình minh họa này, phương thức add() được sử dụng để cộng hai số nguyên và kết quả được trả về dưới dạng một số nguyên

Kết quả của việc sử dụng hàm add() với hai giá trị dấu phẩy động là tổng của các số float, cũng là một số dấu phẩy động

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5

Thú vị hơn, hàm add() chấp nhận cả đối số chuỗi số và số, đồng thời trả về một số nguyên

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1,'2');
echo $result; // 3

Trong trường hợp này, toán tử + làm cho chuỗi số '2' được chuyển đổi hoàn toàn thành số nguyên 2. PHP sẽ báo lỗi nếu không thể chuyển đổi tham số chuỗi thành số nguyên. Ví dụ

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add('Hi','There');
echo $result;

Lỗi

Fatal error: Uncaught TypeError: Unsupported operand types: string + string in ...

Sử dụng gợi ý kiểu để thực thi các loại tham số chức năng và giá trị trả về

Bài học lập trình hướng đối tượng PHP sẽ hướng dẫn bạn cách sử dụng các gợi ý kiểu, bạn có thể sử dụng các gợi ý này cho các thuộc tính và phương thức của lớp

Đối với các loại tham số chức năng trong PHP
Các gợi ý về loại đảm bảo rằng PHP sẽ xác minh loại của giá trị tại thời điểm gọi và tăng TypeError nếu có sự khác biệt

Đặt một loại trước một tham số sẽ thêm một gợi ý loại như được hiển thị ở đây

<?php

function my_function(type $param1, type param2, ...) {
   // ...
}

Đối với gợi ý kiểu trong PHP 5, bạn có thể sử dụng một mảng, có thể gọi được và một lớp. Ngoài ra, các kiểu vô hướng như bool, float, int và text có thể sử dụng được trong PHP 7+

Phương thức add() chấp nhận hai số được định nghĩa như sau

<?php

function add(int $x, int $y)
{
    return $x + $y;
}

$result = add(1,2);
echo $result;  // 3

Tuy nhiên, nếu bạn cung cấp hai số float, thay vào đó, đầu ra sẽ là một số nguyên

<?php

function add(int $x, int $y)
{
    return $x + $y;
}

$result = add(1,2.5);
echo $result; // 3

Trong trường hợp này, PHP tính tổng trước khi cưỡng chế ngầm 2. 5 thành số nguyên (2). Kết quả là một số nguyên như là một kết quả

Nếu có thể, PHP theo mặc định ép buộc một giá trị của loại tương thích vào khai báo loại vô hướng dự kiến. Bạn phải xác định kiểu nhập nghiêm ngặt để yêu cầu giá trị phải có kiểu khớp với định nghĩa kiểu

Gợi ý kiểu PHP ở giá trị trả về của hàm
Đối với một chức năng, bạn thêm loại sau tiêu đề chức năng như trong ví dụ sau

________số 8_______

Hàm add(), nhận hai số và trả về một số nguyên, được xác định theo ví dụ bên dưới

<?php

function add(int $x, int $y): int
{
    return $x + $y;
}

echo add(10, 20);

Nếu một hàm không trả về giá trị kể từ PHP 7. 0, bạn nên sử dụng loại void. Ví dụ

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
0

Các loại công đoàn
Kể từ PHP 8. 0, bạn có thể khai báo một hàm trả về giá trị của nhiều loại dưới dạng kiểu kết hợp. Ví dụ

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
1

Theo các loại tham số, hàm add() trong ví dụ này trả về một số nguyên hoặc một giá trị dấu phẩy động

sự đa dạng
Bạn có thể sử dụng loại hỗn hợp nếu một hàm trả về một giá trị có nhiều loại giá trị. Các loại hỗn hợp đề cập đến một loạt các loại. loại pha trộn. Nó có thể so sánh với loại công đoàn tiếp theo

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
2

Kể từ PHP 8. 0. 0, hỗn hợp đã có thể truy cập được

Chẳng hạn, bộ lọc chức năng tích hợp sẵn var() sử dụng cả loại hỗn hợp và loại kết hợp (mảng. int) làm gợi ý loại

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
3

Loại không có giá trị
Một hàm chấp nhận một chuỗi và trả về chữ hoa của chuỗi được định nghĩa như sau

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
4

Nếu bạn truyền tham số null, bạn sẽ gặp lỗi

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
5

Lỗi

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
6

Bạn có thể giải quyết vấn đề này bằng cách biến đối số $str thành null như sau

<?php

function add($x, $y)
{
    return $x + $y;
}

$result = add(1.0,2.5);
echo $result; // 3.5
7

Trong PHP7. 1, loại nullable đã được giới thiệu

Bằng cách thêm một dấu chấm hỏi (?) trước tên kiểu, PHP cho phép bạn chỉ ra rằng các khai báo kiểu và giá trị trả về là nullable

Các? . Bạn có thể đưa ra một tham số chuỗi hoặc null khi sử dụng hàm?string

Hãy nhớ rằng loại null đã có trong loại hỗn hợp. Do đó, bạn không cần thêm nullable lẫn lộn theo cách sau

Kiểu dữ liệu nào có thể được khai báo với gợi ý kiểu?

Trong PHP, chúng ta có thể sử dụng gợi ý kiểu cho Đối tượng, Mảng và kiểu dữ liệu có thể gọi .

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

hỗn hợp là một loại giả được thêm vào trong PHP 8 truyền đạt loại tham số/trả về/thuộc tính có thể thuộc bất kỳ loại nào . loại hỗn hợp bao gồm tất cả các loại vô hướng trong PHP, null, tất cả các đối tượng lớp, có thể gọi được và thậm chí cả tài nguyên. hỗn hợp tương đương với Loại Liên minh. chuỗi. int. trôi nổi. bool. vô giá trị. mảng. mục tiêu. gọi được. nguồn.

Ý nghĩa của 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ố.

Đâu là cách phù hợp để gõ gợi ý một hàm trong PHP?