acoevil primero recuerda que cuando usas require o usas include es como si ese pedazo de codigo se pegara en tu pagina, y como todo se vuelve una sola pagina por lo tanto no requieres hacer nada especial para invocar las funciones y tampoco para enviar variables post o get.
Normalmente yo creo las carpetas: includes, css, img, pages
Dentro de includes coloco el header, footer, el procesador de friendly url y el archivo de funciones.
Desde index.php invoco todos eso:
Código PHP:
<?php
include("includes/config.inc.php");
include("includes/mysql.class.php");
include("includes/procesor.php");
include("includes/top_page.php");
?>
<div id="wrapper">
<div id="header">
</div>
<div id="menu">
<? include("includes/menu.php"); ?>
</div>
<div id="content">
<div id="main">
<? include("includes/pages.php"); ?>
</div>
<div id="sidebar">
<? include("includes/sidebar.php"); ?>
</div>
<br style="clear:both;" />
</div>
<div id="footer">
<? include("includes/footer.php"); ?>
</div>
</div>
<? include("includes/bottom_page.php"); ?>