Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah sekatan jenis untuk parameter fungsi PHP?

Apakah sekatan jenis untuk parameter fungsi PHP?

WBOY
WBOYasal
2024-04-11 11:15:01823semak imbas

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.

PHP 函数参数的类型限制是什么?

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:

  • Sekatan jenis parameter tidak wajib. Anda masih boleh menghantar parameter kepada fungsi yang tidak sepadan dengan jenis yang ditentukan, tetapi hasil yang tidak dijangka mungkin berlaku.
  • Petua jenis tidak mempunyai overhed masa jalan. Ia hanya digunakan untuk semakan masa kompilasi.

Atas ialah kandungan terperinci Apakah sekatan jenis untuk parameter fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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