include and require both load and run another file, but a missing file triggers a warning with include and stops the script with require. The _once versions behave the same way, except they skip a file already loaded.
include emits an E_WARNING for a missing file, and the script keeps running.
require throws an Error for a missing file, which ends the script unless caught. Before PHP 8.0 it raised a fatal E_COMPILE_ERROR.
include_once and require_once load a file only once. A later call for the same file returns true without loading it.
The _once variants prevent redeclaration errors when the same file might be included more than once, such as a shared helpers file. Use require_once for files the code cannot run without, and plain include for optional parts, such as a template fragment.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.