Pengisytiharan jenis skalar
Secara lalai, semua fail PHP berada dalam mod semakan jenis lemah.
PHP 7 menambah ciri pengisytiharan jenis skalar Terdapat dua mod untuk pengisytiharan jenis skalar:
- Mod paksa (lalai)
- Mod ketat
Format sintaks pengisytiharan jenis skalar:
declare(strict_types=1);
Nilai strict_types (1 atau 0) dinyatakan dalam kod 1 menunjukkan mod semakan jenis ketat, yang digunakan untuk panggilan fungsi dan penyataan kembali; 0 menunjukkan mod pemeriksaan Jenis yang lemah.
Parameter jenis yang boleh digunakan ialah:
int
terapung
-
bool
rentetan
antaramuka
array
<>< . atur cara ialah: <?php // 强制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
Ringkasan contoh menukar parameter 4.1 kepada integer 4 dan kemudian menambahnya.
Contoh Mod Tegas
9Memandangkan atur cara di atas menggunakan mod ketat, jika jenis integer yang tidak sesuai muncul dalam parameter, ralat akan Dilaporkan. Outputnya ialah:
<?php // 严格模式 declare(strict_types=1); function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>Pengisytiharan jenis pulanganPHP 7 menambah sokongan untuk pengisytiharan jenis pulangan, yang menentukan jenis nilai pulangan fungsi. Jenis pemulangan yang boleh diisytiharkan ialah:
int
terapung
bool
rentetan
antaramuka
array
<>-
boleh dipanggil
Tokoh pengisytiharan jenis pengembalian
Instance, hasil pengembalian diperlukan untuk menjadi integer:- Instance
PHP Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, called in……
Hasil output pelaksanaan atur cara di atas ialah:
<?php declare(strict_types=1); function returnIntValue(int $value): int { return $value; } print(returnIntValue(5)); ?>
5
Atur cara di atas menggunakan mod ketat, nilai pulangan mestilah int, tetapi hasil pengiraan adalah terapung, jadi ralat akan dilaporkan Hasil output pelaksanaan ialah:
bahagian seterusnya