Cara menyemak jenis parameter fungsi dalam PHP: gunakan typehints untuk menentukan parameter dan jenis nilai pulangan, dan membuang pengecualian TypeError use getType() untuk mendapatkan jenis pembolehubah sebenar, yang digunakan untuk pernyataan bersyarat; untuk menyemak syarat, dan membuangnya apabila pengecualian AssertionError palsu dan mesej ralat.
Cara menyemak jenis parameter fungsi PHP
Prakata
Dalam pembangunan moden, pemeriksaan jenis menjadi semakin penting, ia dapat meningkatkan kebolehselenggaraan dan kebolehpercayaan kod. Bahasa PHP menyediakan beberapa kaedah untuk menyemak jenis parameter fungsi.
Kaedah 1: Gunakan typehints
Typehints ialah gula sintaksis yang diperkenalkan dalam PHP 7 yang membolehkan anda menentukan jenis parameter yang dijangkakan dalam pengisytiharan fungsi.
function add(int $a, int $b): int { return $a + $b; }
int
typehint menentukan bahawa parameter dan nilai pulangan adalah kedua-dua jenis integer. Jika hujah yang diluluskan bukan integer, PHP akan membuang pengecualian TypeError. int
typehint 指定参数和返回值都是整数类型。如果传递的参数不是整数,PHP 将抛出 TypeError 异常。
方法 2:使用 getType()
getType()
函数可以获取变量的实际类型。
function isString(mixed $value): bool { return gettype($value) === 'string'; }
mixed
typehint 指定参数可以是任何类型。gettype()
函数返回变量的实际类型,以便在条件语句中使用。
方法 3:使用 assert()
assert()
函数可以在运行时检查条件。如果条件为假,它将抛出 AssertionError 异常。
function validateEmail(string $email): void { assert(filter_var($email, FILTER_VALIDATE_EMAIL), 'Invalid email address'); }
assert()
函数接受两个参数:条件和错误消息。如果条件为假,它将抛出 AssertionError 异常并显示错误消息。
实战案例
假设我们有一个处理用户输入的函数。我们可以使用 typehints 和 assert()
来检查输入是否有效:
function processInput(array $data): void { assert(array_key_exists('name', $data), 'Missing "name" field'); assert(array_key_exists('email', $data), 'Missing "email" field'); assert(filter_var($data['email'], FILTER_VALIDATE_EMAIL), 'Invalid email address'); // 处理经过验证的输入... }
在这个例子中,我们确保 $data
数组包含 name
和 email
getType()
untuk mendapatkan jenis pembolehubah sebenar. 🎜rrreee🎜 gettype()
mengembalikan jenis sebenar pembolehubah untuk digunakan dalam pernyataan bersyarat. 🎜🎜🎜Kaedah 3: Gunakan fungsi assert()🎜🎜🎜assert()
untuk menyemak keadaan semasa masa jalan. Jika syarat itu palsu, ia akan membuang pengecualian AssertionError. Fungsi 🎜rrreee🎜assert()
menerima dua parameter: keadaan dan mesej ralat. Jika syarat itu palsu, ia akan membuang pengecualian AssertionError dan memaparkan mesej ralat. 🎜🎜🎜Kes Praktikal🎜🎜🎜Andaikan kita mempunyai fungsi yang mengendalikan input pengguna. Kita boleh menggunakan typehints dan assert()
untuk menyemak sama ada input adalah sah: 🎜rrreee🎜Dalam contoh ini, kami memastikan bahawa tatasusunan $data
mengandungi name medan
dan e-mel
dan alamat e-mel adalah sah. Jika syarat ini tidak dipenuhi, pengecualian AssertionError dibangkitkan dan mesej ralat yang sesuai dipaparkan. 🎜Atas ialah kandungan terperinci Bagaimana untuk menyemak jenis parameter fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!