Bagaimana untuk menyemak jenis parameter fungsi PHP?

王林
Lepaskan: 2024-04-10 18:33:02
asal
484 orang telah melayarinya

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.

如何检查 PHP 函数参数类型?

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;
}
Salin selepas log masuk

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';
}
Salin selepas log masuk

mixed typehint 指定参数可以是任何类型。gettype() 函数返回变量的实际类型,以便在条件语句中使用。

方法 3:使用 assert()

assert() 函数可以在运行时检查条件。如果条件为假,它将抛出 AssertionError 异常。

function validateEmail(string $email): void {
    assert(filter_var($email, FILTER_VALIDATE_EMAIL), 'Invalid email address');
}
Salin selepas log masuk

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');

    // 处理经过验证的输入...
}
Salin selepas log masuk

在这个例子中,我们确保 $data 数组包含 nameemail

🎜Kaedah 2: Gunakan fungsi getType()🎜🎜🎜getType() untuk mendapatkan jenis pembolehubah sebenar. 🎜rrreee🎜 bercampur typehint menyatakan bahawa parameter boleh terdiri daripada sebarang jenis. Fungsi 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan