最佳答案
一位同事在我们的库中添加了几次 断言命令,在这些库中,我可能会使用 if 语句并抛出异常。(在此之前,我甚至从未听说过断言。)下面是他如何使用它的一个例子:
assert('isset($this->records); /* Records must be set before this is called. */');
我会这么做:
if (!isset($this->records)) {
throw new Exception('Records must be set before this is called');
}
从读取 关于断言的 PHP 文档中可以看出,建议您确保断言是活动的,并在使用断言之前添加一个处理程序。我找不到他做过这种事的地方。
因此,我的问题是,使用断言是否是一个好主意,我是否应该更频繁地使用它,而不是使用 if 和异常?
另一个注意事项是,我们计划在各种项目和服务器上使用这些库,包括我们甚至可能不是其中一部分的项目(这些库是开源的)。这对于使用断言有什么不同吗?