Dynamic includes are essential to the way Fusebox works. It gives the programmer the ability to break down their code into simple, manageable templates, which by extension are easy to reuse and debug.
In ColdFusion there are two ways to include a file: CFInclude (of course), and CFModule.
In PHP, there are four ways to include a file: include(), require(), include_once(), and require_once().
Let's look at how all these line up.
ColdFusion's CFInclude and PHP's include() are essentially the same. At runtime, when the application engines encounters one of these functions, they pause interpretation of the current template, read through and interpret the requested include file, allowing access to all variables available to the calling template, and then return control to the original template.
The short version is that the application engine sees an included file as if its contents were there in the original template in the first place, more or less. The following are equivalent:
In ColdFusion:
<cfinclude template="foo.cfm">
In PHP:
<?php
include("foo.php");
?>
CFModule, unlike CFInclude, does not intrinsically have an equivalent in PHP*. CFModule is essentially the same as CFInclude, but it runs the requested file in its own namespace. That is, the variables available to the original template are not inherently available to the CFModule'd template variables are explicitly passed to that template instead.
Neither does PHP's require() have an equivalent in ColdFusion. require(), again, is essentially the same as include(), but require() will throw a fatal error and halt further processing if the requested file is not available, where include() would only throw a non-fatal warning.
Which leaves include_once() and require_once(). These are fairly obvious functions: they will include() or require() the requested file only if the requested file has not yet been included previously during the processing of the current request. That way, your code will only require a function library _once() during a request, and you will not get any errors stating that a function has already been defined, or something in that vein.
*
See the Enhancements pages for details on how to CFModule in PHP-Fusebox...