Pengecualian PHP 7
Pengecualian PHP 7 digunakan untuk keserasian ke belakang dan peningkatan fungsi assert() lama. Ia membolehkan penegasan kos sifar dalam persekitaran pengeluaran dan menyediakan keupayaan untuk membuang pengecualian dan ralat tersuai.
Versi lama API akan terus dikekalkan untuk tujuan keserasian assert() kini merupakan binaan bahasa yang membenarkan hujah pertama menjadi ungkapan, bukan sekadar rentetan untuk dinilai atau boolean. untuk diuji.
menegaskan() konfigurasi
Item konfigurasi | < th>Nilai lalaiNilai pilihan |
---|
zend.assertions | 1 | 配置项 | 默认值 | 可选值 |
---|
zend.assertions | 1 | 1 - 生成和执行代码 (开发模式) 0 - 生成代码,但在执行时跳过它 -1 - 不生成代码 (生产环境)
| assert.exception | 0 | 1 - 断言失败时抛出,可以抛出异常对象,如果没有提供异常,则抛出 AssertionError 对象实例。 0 - 使用或生成 Throwable, 仅仅是基于对象生成的警告而不是抛出对象(与 PHP 5 兼容)
|
1 - Jana dan laksanakan kod (mod pembangunan) - 0
- Jana kod, tetapi Langkau ia semasa pelaksanaan -1- - jangan jana kod (persekitaran pengeluaran)
|
< tr>assert.exception | 0 | 1assertion - apabila penegasan gagal Lempar, anda boleh membuang objek pengecualian, jika tiada pengecualian disediakan, contoh objek AssertionError dilemparkan. - 0 - Gunakan atau hasilkan Throwable, cuma jana amaran berdasarkan objek dan bukannya membaling objek (serasi dengan PHP 5)
|
Parameterpenegasan
Penegasan. Dalam PHP 5, rentetan untuk pelaksanaan atau boolean untuk ujian. Dalam PHP 7, ini boleh menjadi ungkapan yang mengembalikan sebarang nilai, dan hasilnya akan digunakan untuk menunjukkan sama ada pernyataan itu berjaya.
penerangan
Jika
gagal, penerangan pilihan akan disertakan dalam mesej kegagalan.
exception
Dalam PHP 7, parameter kedua boleh menjadi objek
Throwable
dan bukannya String aksara yang akan dilemparkan jika penegasan gagal dan menegaskan.pengecualian didayakan.
Instance
Tetapkan zend.assertions kepada 0:
Instance
<?php
ini_set('zend.assertions', 0);
assert(true == false);
echo 'Hi!';
?>