Kata kunci declare
digunakan untuk menetapkan arahan eksekusi untuk satu blok kode. Jika declare
menyatakan tidak diikuti oleh blok maka direktif berlaku untuk sisa kode dalam file.
Ada tiga arahan yang bisa dideklarasikan: ticks, encoding
dan strict_types
.
Direktif ticks
akan mengirimkan event tick setiap kali sejumlah instruksi tertentu telah dijalankan. Fungsi tick dapat didaftarkan yang akan berjalan setiap kali event tick diaktifkan.
Direktif encoding
digunakan untuk menunjukkan karakter apa yang mengkodekan file yang digunakan. Itu tidak dapat digunakan di satu blok, itu harus diterapkan ke seluruh file.
Saat direktif strict_types
disetel, nilai jenis yang salah diteruskan ke argumen fungsi dengan petunjuk jenis akan memunculkan kesalahan fatal alih-alih dikirim ke jenis yang benar.
Contoh
Jalankan fungsi setelah setiap instruksi:
<?php $count = 0; function example() { global $count; $count++; echo "$count instruksi dieksekusi<br>"; } register_tick_function('example'); declare(ticks=1) { $cars = ["Ford", "Avanza", "BMW"]; foreach($cars as $car) { echo "$car <br>"; } } ?> /* Output: 1 instruksi dieksekusi Ford 2 instruksi dieksekusi Avanza 3 instruksi dieksekusi BMW 4 instruksi dieksekusi 5 instruksi dieksekusi
Contoh
Jalankan fungsi setelah setiap instruksi:
<?php declare(strict_types=1); function sum(int $a, int $b) { return $a + $b; } // Melempar kesalahan fatal karena '5' adalah string, bukan angka sum("4", 1); ?> /* Output: PHP Fatal error: strict_types declaration must be the very first statement in the script in /home/h0iQ5o/prog.php on line 6