The require() function is identical to include(), except that it handles errors differently. If an error occurs, the include() function generates a warning, but the script will continue execution. The require() generates a fatal error, and the script will stop.
My suggestion is to just use require_once 99.9% of the time.
Using require or include instead implies that your code is not reusable elsewhere, i.e. that the scripts you’re pulling in actually execute code instead of making available a class or some function libraries.