Sekatan jenis parameter fungsi PHP boleh ditentukan melalui pembayang jenis, ciri yang membolehkan menentukan jenis yang dijangkakan untuk parameter. Jika parameter yang diluluskan tidak sepadan dengan jenis, pengecualian TypeError akan dinaikkan. Jenis kesatuan sokongan PHP8 dan ke atas, membenarkan penggunaan pelbagai jenis yang mungkin. Alat analisis statik boleh menggunakan petunjuk jenis untuk mengesan ralat dan mengelakkan ketidakpadanan jenis masa jalan.
Sekatan jenis parameter fungsi PHP
PHP menyokong pelbagai jenis data, tetapi sekatan jenis parameter fungsi adalah sangat fleksibel.
Petua taip
Petua jenis sokongan PHP7 dan ke atas. Ciri ini membolehkan anda menentukan jenis yang dijangkakan untuk parameter fungsi. Jika hujah yang diluluskan tidak sepadan dengan jenis yang ditentukan, pengecualian TypeError akan dinaikkan.
Sintaks:
function functionName(int $parameter1, string $parameter2): void { // ... }
Jenis pilihan
PHP8 dan ke atas membenarkan penetapan berbilang jenis yang mungkin menggunakan jenis kesatuan. Jika hujah yang diluluskan sepadan dengan mana-mana jenis yang ditentukan, tiada pengecualian akan dicetuskan.
Syntax:
function functionName(int|string $parameter1): void { // ... }
Analisis Statik
Sesetengah persekitaran pembangunan dan alatan analisis statik, seperti PhpStorm, boleh menggunakan petunjuk jenis untuk mengesan kemungkinan ralat. Ini membantu mengenal pasti dan menyelesaikan ketidakpadanan jenis sebelum masa jalan.
Kes praktikal
Andaikan kita mempunyai fungsi calculateArea
untuk mengira luas segi empat tepat:
function calculateArea(int $width, int $height): float { return $width * $height; }
Jika nilai bukan integer diluluskan, fungsi akan mencetuskan pengecualian TypeError.
try { $area = calculateArea(1.5, 2.5); } catch (TypeError $e) { echo $e->getMessage(); }
Output:
Argument 1 passed to calculateArea() must be of the type int, float given
Nota:
Atas ialah kandungan terperinci Apakah sekatan jenis untuk parameter fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!