Including Code
PHP provides two constructs to
load code and HTML from
another module: require
and
include
. They both load a file as the PHP script
runs, work in conditionals and loops, and complain if the file being
loaded can’t be found. The main difference is that
attempting to require
a nonexistent file is a
fatal error, while attempting to include
such a
file produces a warning but does not stop script execution.
A common use of include
is to separate
page-specific content from general site design. Common elements such
as headers and footers go in separate HTML files, and each page then
looks like:
<? include 'header.html'; ?>
content
<? include 'footer.html'; ?>
We use include
because it allows PHP to continue
to process the page even if there’s an error in the
site design file(s). The require
construct is less
forgiving and is more suited to loading code libraries, where the
page can’t be displayed if the libraries
don’t load. For example:
require 'codelib.inc'; mysub( ); // defined in codelib.inc
A marginally more efficient way to handle headers and footers is to load a single file and then call functions to generate the standardized site elements:
<? require 'design.inc';
header( );
?>
content
<? footer( ); ?>
If PHP cannot parse some part of a file included by
include
or require
, a warning
is printed and execution continues. You can silence the warning by
prepending the call with the silence operator; for example,
@include
.
If the allow_url_fopen
option is enabled through ...
Get Programming PHP now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.