Friday, May 8, 2020

Include and Require Keyword

Including a PHP File into Another PHP File: The include() and require() statement allows you to include the code contained in a PHP file within another PHP file. Including a file produces the same result as copying the script from the file specified and pasted into the location where it is called. 

You can save a lot of time and work through including files — Just store a block of code in a separate file and include it wherever you want using the include() and require() statements instead of typing the entire block of code multiple times. A typical example is including the header, footer and menu file within all the pages of a website.

The basic syntax of the include() and require() statement can be given with:

include("path/to/filename"); -Or- include "path/to/filename";
require("path/to/filename"); -Or- require "path/to/filename";

Note:  Like the print and echo statements, you can omit the parentheses while using the include and require statements as demonstrated above.

The following example will show you how to include the common header, footer and menu codes which are stored in separate 'header.php', 'footer.php' and 'menu.php' files respectively, within all the pages of your website. Using this technique you can update all pages of the website at once by making the changes to just one file, this saves a lot of repetitive work.

<!DOCTYPE html>

<html lang="en">

<head>

    <title>Tutorial Republic</title>

</head>

<body>

<?php include "header.php"?>

<?php include "menu.php"?>

    <h1>Welcome to Our Website!</h1>

    <p>Here you will find lots of useful information.</p>

<?php include "footer.php"?>

</body>

</html>


Difference Between include and require Statements

You might be thinking if we can include files using the include() statement then why we need require(). Typically the require() statement operates like include().

The only difference is — the include() statement will only generate a PHP warning but allow script execution to continue if the file to be included can't be found, whereas the require() statement will generate a fatal error and stops the script execution.

<?php require "my_variables.php"?>

<?php require "my_functions.php"?>

<!DOCTYPE html>

<html lang="en">

<head>

    <title><?php displayTitle($home_page); ?></title>

</head>

<body>

<?php include "header.php"?>

<?php include "menu.php"?>

    <h1>Welcome to Our Website!</h1>

    <p>Here you will find lots of useful information.</p>

<?php include "footer.php"?>

</body>

</html>

 

Note: It is recommended to use the require() statement if you're including the library files or files containing the functions and configuration variables that are essential for running your application, such as database configuration file.

The include_once and require_once Statements

If you accidentally include the same file (typically functions or classes files) more than one time within your code using the include or require statements, it may cause conflicts. To prevent this situation, PHP provides include_once and require_once statements. These statements behave in the same way as include and require statements with one exception.

The include_once and require_once statements will only include the file once even if asked to include it a second time i.e. if the specified file has already been included in a previous statement, the file is not included again. To better understand how it works, let's check out an example. Suppose we've a 'my_functions.php' file with the following code: 

<?php

function multiplySelf($var){

    $var *= $var// multiply variable by itself

    echo $var;

}

?>

Here's is the PHP script within which we've included the 'my_functions.php' file. 

<?php

// Including file

require "my_functions.php";

// Calling the function

multiplySelf(2); // Output: 4

echo "<br>";

 

// Including file once again

require "my_functions.php";

// Calling the function

multiplySelf(5); // Doesn't execute

?>

When you run the above script, you will see the error message something like this: "Fatal error: Cannot redeclare multiplySelf()". This occurs because the 'my_functions.php' included twice, this means the function multiplySelf() is defined twice, which caused PHP to stop script execution and generate fatal error. Now rewrite the above example with require_once.

<?php

// Including file

require_once "my_functions.php";

// Calling the function

multiplySelf(2); // Output: 4

echo "<br>";

 

// Including file once again

require_once "my_functions.php";

// Calling the function

multiplySelf(5); // Output: 25

?>

As you can see, by using require_once instead of require, the script works as we expected.