A coworker has added the assert command a few times within our libraries in places where I would have used an if statement and thrown an exception. (I had never even heard of assert before this.) Here is an example of how he used it:
assert('isset($this->records); /* Records must be set before this is called. */');
I would have done:
if (!isset($this->records)) {
throw new Exception('Records must be set before this is called');
}
From reading the PHP docs on assert, it looks like it's recommended that you make sure assert is active and add a handler before using assert. I can't find a place where he's done this.
So, my question is, is using assert a good idea given the above and should I be using it more often instead of if's and exceptions?
Another note, we are planning to use these libraries on a variety of projects and servers, including projects that we may not even be part of (the libraries are open source). Does this make any difference in using assert?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…