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

< th>Nilai lalai< tr>
Item konfigurasiNilai pilihan
zend.assertions1
    配置项默认值可选值
    zend.assertions1
    • 1 - 生成和执行代码 (开发模式)

    • 0 - 生成代码,但在执行时跳过它

    • -1 - 不生成代码 (生产环境)

    assert.exception0
    • 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)
assert.exception0
  • 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)
Parameter

penegasan

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!';
?>