include() will throw a warning if it can't include the file, but the rest of the script will run.
require() will throw an E_COMPILE_ERROR and halt the script if it can't include the file.
The include_once() and require_once() functions will not include the file a second time if it has already been included.
See the following documentation pages:
The difference is in the error the commands generate. With require, the file you want to use is really required and thus generates an E_ERROR if it is not found.
require()is identical toinclude()except upon failure it will also produce a fatalE_ERRORlevel error.
include only generates an E_WARNING error if it fails which is more or less silent.
So use it if the file is required to make the remaining code work and you want the script to fail the file is not available.
For *_once():
include_once()may be used in cases where the same file might be included and evaluated more than once during a particular execution of a script, so in this case it may help avoid problems such as function redefinitions, variable value reassignments, etc.
Same applies to require_once() of course.
Reference: require(), include_once()
With require the file must exist, if it doesn't then an error will display; whereas with include - if the file doesn't exist then then the page will continue loading.