Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan pemeriksaan jenis ketat parameter fungsi dalam PHP?
Pemeriksaan ketat jenis parameter fungsi PHP boleh memastikan bahawa parameter yang diluluskan adalah konsisten dengan jenis yang diisytiharkan. Apabila didayakan melalui declare(strict_types=1), parameter fungsi diperlukan untuk memadankan jenis yang ditentukan, jika tidak, pengecualian TypeError akan dilemparkan. Pemeriksaan ketat menyokong jenis asas (int, float), jenis komposit (objek, tatasusunan), jenis kesatuan (int|rentetan) dan jenis pilihan (?int) untuk meningkatkan keteguhan kod dan menghalang parameter jenis yang salah daripada diluluskan.
Semakan jenis parameter fungsi PHP merujuk kepada proses menyemak sama ada jenis parameter yang benar-benar diluluskan adalah konsisten dengan jenis parameter yang diisytiharkan oleh fungsi apabila fungsi dipanggil. Kekukuhan kod anda boleh dipertingkatkan dengan pemeriksaan ketat untuk memastikan bahawa parameter yang dihantar kepada fungsi adalah seperti yang diharapkan.
Dalam PHP 7.0 dan ke atas, anda boleh menggunakan pernyataan Declare
untuk melakukan semakan ketat pada jenis parameter fungsi: Declare
语句对函数参数类型进行严格检查:
declare(strict_types=1); function add(int $a, int $b) {...}
通过 strict_types=1
声明启用严格模式后,函数 add
要求传入两个整数类型的参数,否则将抛出 TypeError 异常。
PHP 支持以下基本类型和复合类型的严格检查:
int
、float
、bool
、string
、null
复合类型:
object
或 Class
array
int|string
?int
场景:
定义一个函数 calculateArea
,计算几何图形的面积。需要根据不同的图形类型,传递不同的参数:
function calculateArea($shape, $params) {...}
使用类型检查防止参数错误:
declare(strict_types=1); function calculateArea(string $shape, array $params): float {...}
通过 strict_types
声明和明确的参数类型,可以防止传递错误类型的参数。例如:
calculateArea(123, []); // 抛出 TypeError 异常
使用联合类型提高灵活性:
function calculateArea(string $shape, int|float $radius): float {...}
联合类型允许函数根据不同的情况接收不同类型的参数。例如,计算圆形或正方形的面积:
calculateArea('circle', 5); calculateArea('square', 10);
null
值,可以使用可选类型 ?
rrreeestrict_types=1
pengisytiharan Akhir sekali, fungsi add
memerlukan dua parameter jenis integer untuk dihantar, jika tidak, pengecualian TypeError akan dilemparkan. int
, float
, bool code>, <code>string
, null
🎜🎜🎜Jenis komposit: 🎜Kelas
🎜🎜Jenis tatasusunan: ?int
🎜🎜🎜🎜 🎜Kes pertempuran praktikal 🎜🎜Senario:🎜🎜Tentukan fungsi strict_types
dan jenis parameter yang jelas, anda boleh mencegah Melepasi hujah daripada jenis yang salah. Contohnya: 🎜rrreee🎜Gunakan jenis kesatuan untuk meningkatkan fleksibiliti:🎜rrreee🎜Jenis kesatuan membenarkan fungsi menerima jenis parameter yang berbeza berdasarkan situasi yang berbeza. Contohnya, mengira luas bulatan atau segi empat sama: 🎜rrreee🎜Perhatian🎜null
, anda boleh menggunakan jenis pilihan ?
. 🎜🎜Apabila mod ketat didayakan, jenis mesti dinyatakan secara eksplisit untuk semua parameter fungsi, termasuk parameter pilihan. 🎜🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemeriksaan jenis ketat parameter fungsi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!