Exceptions PHP 7

Les exceptions PHP 7 sont utilisées pour la compatibilité ascendante et l'amélioration de l'ancienne fonction assert(). Il permet des assertions sans coût dans les environnements de production et offre la possibilité de générer des exceptions et des erreurs personnalisées.

L'ancienne version de l'API continuera d'être maintenue à des fins de compatibilité. assert() est désormais une construction de langage qui permet au premier argument d'être une expression, pas seulement une chaîne à évaluer ou un booléen. à tester.


configuration assert()

< th>Valeur par défaut< tr>
Élément de configurationValeur facultative
zend.assertions1
    配置项默认值可选值
    zend.assertions1
    • 1 - 生成和执行代码 (开发模式)

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

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

    assert.exception0
    • 1 - 断言失败时抛出,可以抛出异常对象,如果没有提供异常,则抛出 AssertionError 对象实例。

    • 0 - 使用或生成 Throwable, 仅仅是基于对象生成的警告而不是抛出对象(与 PHP 5 兼容)

    1

    - Générer et exécuter du code (mode développement)
    • 0
    • - Générer du code, mais ignorer pendant l'exécution
    • -1
    • - ne pas générer de code (environnement de production)
assert.exception0
  • 1assertion - lorsque l'assertion échoue Lancer, vous pouvez lancer un objet d'exception, si aucune exception n'est fournie, une instance d'objet AssertionError est levée.

  • 0 - Utilisez ou générez Throwable, générez simplement des avertissements basés sur des objets au lieu de lancer des objets (compatible avec PHP 5)
Paramètres

assertion

Assertion. En PHP 5, une chaîne pour l'exécution ou un booléen pour les tests. En PHP 7, il peut s'agir d'une expression qui renvoie n'importe quelle valeur, et le résultat sera utilisé pour indiquer si l'assertion a réussi.

description

Si
échoue, la description de l'option sera incluse dans le message d'échec.

exception

En PHP 7, le deuxième paramètre peut être un objet

Throwable
au lieu d'une chaîne de caractères qui être lancé si l'assertion échoue et que assert.exception est activé.



Instance
Définissez zend.assertions sur 0 :


Instance

<?php
ini_set('zend.assertions', 0);
assert(true == false);
echo 'Hi!';
?>