Jenis skalar PHP dan pengisytiharan jenis nilai pulangan

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:

deklarasi(strict_types=1); kod Dengan menyatakan nilai strict_types (1 atau 0), 1 menunjukkan mod semakan jenis ketat, yang digunakan untuk panggilan fungsi dan penyataan kembali 0 menunjukkan mod semakan jenis lemah. deklarasikan(strict_types=1) mestilah pernyataan pertama fail. Jika pernyataan ini muncul di tempat lain dalam fail, ralat kompilasi akan dihasilkan dan mod blok dilarang secara jelas.

Arahan strict_types mempengaruhi fail yang ditentukan dan tidak akan menjejaskan fail lain yang disertakan olehnya (melalui termasuk, dsb.). Arahan ini disusun semasa masa jalan dan tidak boleh diubah suai. Cara ia berfungsi ialah dengan menetapkan bendera dalam opcode supaya panggilan fungsi dan semakan jenis kembali mematuhi kekangan jenis.

Parameter jenis yang boleh digunakan ialah:

int

terapung

bool

rentetan

antara muka

array

boleh dipanggil

contoh mod paksa

contoh

<?php 
// 强制模式 
function sum(int ...$ints) 
{ 
   return array_sum($ints); 
} 
print(sum(2, '3', 4.1)); 
?>
Hasil output pelaksanaan program di atas ialah:

9

Contoh ringkasan Tukar parameter 4.1 kepada integer 4 dan kemudian tambahkannya.


Contoh mod ketat

Instance

<?php 
// 严格模式 
declare(strict_types=1); 
function sum(int ...$ints) 
{ 
   return array_sum($ints); 
} 
print(sum(2, '3', 4.1)); 
?>
Memandangkan atur cara di atas menggunakan mod ketat, jika integer yang tidak sesuai muncul dalam parameter Jenis akan melaporkan ralat, dan hasil output pelaksanaan ialah:

PHP Ralat maut: Ralat Jenis Uncaught: Argumen 2 dihantar kepada sum() mestilah daripada jenis integer, rentetan yang diberikan, dipanggil masuk ...

Pengisytiharan jenis pulangan

PHP 7 menambah sokongan untuk pengisytiharan jenis pulangan, yang menentukan pemulangan fungsi jenis nilai. Jenis pemulangan yang boleh diisytiharkan ialah:

int

terapung

bool

rentetan

antara muka

array

Dalam contoh boleh panggil

contoh pengisytiharan jenis pulangan

, hasil pulangan diperlukan untuk menjadi integer: instance

<?php 
declare(strict_types=1); 
function returnIntValue(int $value): int 
{ 
   return $value; 
} 
print(returnIntValue(5)); 
?>
Hasil keluaran pelaksanaan program di atas ialah:

5

Instance ralat pengisytiharan jenis kembali

Instance

<?php 
declare(strict_types=1); 
function returnIntValue(int $value): int 
{ 
   return $value + 1.0; 
} 
print(returnIntValue(5)); 
?>

Memandangkan program di atas menggunakan mod ketat, nilai pulangan mestilah int, tetapi hasil pengiraan adalah terapung, jadi ralat akan dilaporkan Hasil output pelaksanaan ialah:

Ralat maut : Uncaught TypeError: Nilai pulangan returnIntValue() mestilah daripada jenis integer, float dikembalikan...


Meneruskan pembelajaran
||
<?php // 强制模式 function sum(int $ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
  • Cadangan kursus
  • Muat turun perisian kursus