In fact, includethey are requireidentical in all, except that requireit will not work with E_ERROR, but includewill issue a warning. Also, both statements are activated only when they are actually executed inside the script. Thus, the following code will always work:
<?php
echo "Hello world";
if (0) require "non_existing.php";
The answer to your question is what index.phpwill be first analyzed and executed. Then, when include "init.php"it encounters, the file is init.phpparsed and executed in the current area. The same for layout/header.php- will be analyzed first.
As already noted, it init.phpwill be parsed and executed every time include/ is called require, so you probably want to use include_onceor require_once.