Type Hinting feature dalam PHP7: Bagaimana untuk menjelaskan jenis parameter fungsi untuk mengelakkan ralat dan ketidakpastian?
Pengenalan:
Semasa proses pembangunan, kita sering menghadapi masalah lulus parameter fungsi. Kadangkala, ralat dan ketidakpastian berlaku disebabkan oleh jenis parameter fungsi yang tidak jelas. Untuk menyelesaikan masalah ini, PHP7 memperkenalkan ciri Petunjuk Jenis, yang membolehkan kami menentukan secara eksplisit jenis parameter fungsi, dengan itu mengelakkan beberapa ralat biasa dan mengurangkan ketidakpastian. Artikel ini akan memperkenalkan penggunaan Type Hinting dalam PHP7 secara terperinci dan memberikan contoh kod khusus.
1. Konsep Petunjuk Jenis:
Petunjuk Jenis ialah cara untuk mengisytiharkan jenis parameter fungsi. Dengan menetapkan awalan parameter fungsi dengan jenis yang ditentukan, anda boleh memastikan bahawa nilai yang dihantar kepada fungsi adalah daripada jenis yang dijangkakan. Jika jenis yang diluluskan tidak sepadan, ralat maut dijana.
2. Penggunaan Pembayang Jenis:
Dalam PHP7, kita boleh menggunakan kaedah berikut untuk melakukan Pembayang Jenis:
<array>, <callable>, <bool>, <float>, <int>, <string> ;
). Berikut ialah contoh: <array>、<callable>、<bool>、<float>、<int>、<string>
)。下面是一个例子:function addNumbers(int $a, int $b): int { return $a + $b; } echo addNumbers(5, 10); // 输出15 echo addNumbers("5", 10); // 报错,因为"5"不是一个整数
在上面的例子中,函数addNumbers
的参数$a
和$b
被指定为整数。如果传入的值不是整数类型,则会产生一个致命错误。
class User { // ... } class UserService { public function register(User $user) { // ... } } $user = new User(); $service = new UserService(); $service->register($user); // 正确 $service->register("abc"); // 报错,因为"abc"不是 User 类的实例
在上面的例子中,函数register
的参数$user
被指定为User
类的实例。如果传入的值不是User
类的实例,则会产生一个致命错误。
null
值,可以使用?
将参数类型标记为可为空类型。下面是一个例子:function searchUser(?string $keyword): array { // ... } var_dump(searchUser("John")); // array(1) { [0]=> string(4) "John" } var_dump(searchUser(null)); // array(0) { }
在上面的例子中,函数searchUser
的参数$keyword
被指定为字符串类型,但可以接受null
值。如果传入的值不是字符串类型或null
rrreee
addNumbers
ialah $a
dan $b
dinyatakan sebagai integer. Jika nilai yang dihantar bukan daripada jenis integer, ralat maut dijana.
$user
bagi fungsi register
ditentukan sebagai Contoh kelas User
. Jika nilai yang dihantar bukan contoh kelas User
, ralat maut akan dihasilkan. null
, anda boleh menggunakan ? Tandakan jenis parameter sebagai jenis nullable. Berikut ialah contoh:
$keyword
bagi fungsi searchUser
ditentukan sebagai jenis rentetan , tetapi nilai null
diterima. Jika nilai yang dihantar bukan daripada rentetan jenis atau null
, ralat maut akan dijana. 3. Kelebihan Pembayang Jenis:
Menggunakan ciri Pembayang Jenis boleh membawa kelebihan berikut:
Atas ialah kandungan terperinci Taip ciri Pembayang dalam PHP7: Bagaimana untuk menjelaskan jenis parameter fungsi untuk mengelakkan ralat dan ketidakpastian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!