Здравей!
Много накратко:
Според онова, което съм челrequire(); не е точно функция, а езикова конструкция.
Подобно на include(); тя включва файл, с първа разлика, че не връща стойност "True" при включване на файла или "False" при неизпълнение, т.е. няма как да направиш проверка дали включването е успешно.
Второ (също много важно): при include(); обработката на кода от парсера става в момента на изпълнението, докато при require(); кодътт първо се парсва изцяло и тогава се подава за изпълнение. И пример:
Файл за включване - file.php:
<?
$bukvi="a, b, v, g...";
?>
Примерни записи:
<?
$nachalo= "Pyrvite 4 bukvi ot azbukata:";
include ("file.php");
echo "$nachalo $bukvi"
?>
<?
$nachalo= "Първите 4 букви от азбуката:";
require ("file.php");
echo "$nachalo $bukvi"
?>
Хипотеза: файла за включване не съществува или по някаква причина не се включва.
В първия случай, кодът на основния файл ще се изпълни, ще изпише предупреждение, но ще имаме резултат, макар и непълен:
"Първите 4 букви от азбуката: "
Във втроия случай, липсващия файл няма как да бъде обработен и подаден за включване и изпълнението ще спре веднага. Най-вероятно ще се получи съобщение за грешка: Парс ерор... така че няма да изпише стойността дори на налината променлива $nachalo.
За require_ once и include_ once виждам, че Бафиту ти е обяснил...