如何解决如何在 PHP 中使用断言?
维基百科建议再次使用断言作为错误处理程序:
断言不同于常规的错误处理。断言记录逻辑上不可能发生的情况并发现编程错误:如果不可能发生,那么程序的某些基本问题显然是错误的。这与错误处理不同:大多数错误情况都是可能的,尽管在实践中有些可能极不可能发生。使用断言作为通用的错误处理机制是不明智的:断言不允许从错误中恢复;断言失败通常会突然停止程序的执行;并且断言通常在生产代码中被禁用。断言也不会显示用户友好的错误消息。
但这在 PHP 中并非如此,因为断言可以设置为抛出异常或仅引发警告(assert.exception
指令)。如果主要优点是选择性地跳过生成代码(zend.assertions
指令),那么在 PHP 中对我来说有意义的唯一用例是假设场景
assert(expression); // expression is slow to evaluate
doSomething(); // test expression in development,turn off in production
PHP 的主要瓶颈通常是网络通信或繁重的数据库查询,所以我相信关闭断言没有明显的好处:在现实世界中,断言通常很快,通常不需要在 PHP 中进行微优化。假设是这样,我很想使用断言作为通用异常的简写语法。
在 PHP 中这样使用断言可以吗?如果不是,那么在 PHP 中利用断言以获得优于其他工具的明显好处的正确方法是什么? (我知道 C assert
,我专门为 PHP 寻找答案)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。