PHP tipe skalar dan nilai kembali deklarasi tipe
deklarasi tipe skalar
Secara default, semua file PHP berada dalam modus memeriksa jenis lemah.
PHP 7 meningkatkan karakteristik tipe skalar dideklarasikan tipe skalar deklarasi memiliki dua mode:
- modus paksa (default)
- Modus yang ketat
Skalar sintaks deklarasi tipe:
declare(strict_types=1);
Strict_types kode dengan menentukan nilai (1 atau 0), 1 modus memeriksa jenis ketat, peran fungsi panggilan dan pernyataan kembali; 0 merupakan modus memeriksa jenis lemah.
jenis parameter dapat digunakan adalah:
int
mengapung
bool
tali
interface
susunan
callable
Contoh modus penegakan
contoh
Modus Penegakan //
fungsi sum (int ... $ int)
{
kembali array_sum ($ int);
}
print (sum (2, '3 ', 4,1));
?>
Output di atas eksekusi program adalah:
9
Contoh parameter Ringkasan 4 4.1 dikonversi ke integer dan kemudian dijumlahkan.
Contoh Modus ketat
contoh
// Strict Mode
menyatakan (strict_types = 1);
fungsi sum (int ... $ int)
{
kembali array_sum ($ int);
}
print (sum (2, '3 ', 4,1));
?>
Program di atas karena modus yang ketat, jadi jika Anda mengetik muncul parameter bilangan bulat tidak sehat yang diberikan, keluaran eksekusi adalah:
PHP Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, called in……
kembali jenis deklarasi
PHP 7 menambahkan dukungan untuk jenis kembali deklarasi, itu menunjukkan jenis kembalinya fungsi kembali jenis nilai deklarasi.
Dapat mendeklarasikan jenis pulang adalah:
int
mengapung
bool
tali
interface
susunan
callable
kembali jenis contoh deklarasi
Misalnya, diminta untuk kembali ke integer:
contoh
menyatakan (strict_types = 1);
Fungsi returnIntValue (int $ value): int
{
kembali $ nilai;
}
print (returnIntValue (5));
?>
Output di atas eksekusi program adalah:
5
Contoh kesalahan jenis kembali deklarasi contoh
<? Php
menyatakan (strict_types = 1);
Fungsi returnIntValue (int $ value): int
{
return $ nilai + 1,0;
}
print (returnIntValue (5));
?>
contoh
menyatakan (strict_types = 1);
Fungsi returnIntValue (int $ value): int
{
return $ nilai + 1,0;
}
print (returnIntValue (5));
?>
Program di atas karena modus yang ketat, nilai kembali harus menjadi int, tetapi hasilnya float, maka akan diberikan, keluaran eksekusi adalah:
Fatal error: Uncaught TypeError: Return value of returnIntValue() must be of the type integer, float returned...