Home >Backend Development >PHP Tutorial >An in-depth analysis of the difference between php include and require_PHP Tutorial

An in-depth analysis of the difference between php include and require_PHP Tutorial

WBOY
WBOYOriginal
2016-07-21 15:05:56964browse

nclude()
The include() statement includes and runs the specified file.

The following documentation also applies to require(). The two structures are identical except for how they handle failure. include() produces a warning and require() causes a fatal error. In other words, use require() if you want to stop processing the page if a missing file is encountered. This is not the case with include() and the script will continue to run. Also make sure the appropriate include_path is set.

When a file is included, the code contained in it inherits the variable scope of the include line. From that point on, any variables available in the calling file at that line are also available in the called file.

Example 12-3. Basic include() example
vars.php

Copy code The code is as follows:

$color = 'green';
$fruit = 'apple';
?>
echo "A $color $fruit"; // A
include 'vars.php';echo "A $color $fruit"; // A green apple
?>
If include appears in a function in a calling file, all code contained in the called file will behave as if it were defined inside that function. So it will follow the variable scope of that function.
Example 12-4. Includes in functions





Copy code
The code is as follows:


function foo(){
global $color;
include 'vars.php';
echo "A $color $ fruit";
}/* vars.php is in the scope of foo() so ** $fruit is NOT available outside of this ** scope. $color is because we declared it ** as global. */
foo(); // A green apple
echo "A $color $fruit"; // A green
?>


When a file is included, the parser leaves PHP mode and enters HTML mode at the beginning of the target file, and resumes at the end of the file. For this reason, any code in an object file that should be executed as PHP code must be included in valid PHP start and end tags.

If "URL fopen wrappers" are activated in PHP (default configuration), files to be included can be specified using URLs (via HTTP) instead of local files. If the target server interprets the target file as PHP code, you can pass variables to the included file using the URL request string for HTTP GET. Strictly speaking, this is not the same thing as including a file and inheriting the variable space of the parent file; the script file has actually been run on the remote server, and the local script includes its results.



Warning


The Windows version of PHP does not currently support remote file access for this function, even if the allow_url_fopen option is activated.


Example 12-5. include() over HTTP



Copy code
The code is as follows:


/* This example assumes that www.example.com is configured to parse .php ** files and not .txt files. Also, 'Works' here means that the variables *
* $foo and $bar are available within the included file. */
// Won't work; file.txt wasn't handled by www.example.com as PHPinclude 'http://www.example.com/file.txt?foo=1&bar=2';
// Won't work; looks for a file named 'file.php ?foo=1&bar=2' on the// local filesystem.include 'file.php?foo=1&bar=2';
// Works.
include 'http: //www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt'; // Works.
include 'file.php'; // Works.
?>


For related information, see Using remote files, fopen() and file().
Because include() and require() are special language constructs, they must be placed in a statement group (in curly braces) when used in conditional statements.



Example 12-6. include() and conditional statement group





Copy code
The code is as follows:


// This is WRONG and will not work as desired.if ($condition)
include $file;
else include $other;
// This is CORRECT.if ($condition) {include $file;} else {include $other;
}
?>


Handling return values: You can use the return() statement in an included file to terminate the execution of the program in the file and return to the script that called it. It is also possible to return values ​​from included files. The return value of an include call can be obtained like a normal function.

Note: In PHP 3, return cannot appear in included files unless called in a function. In this case return() acts on the function rather than the entire file.

Example 12-7. include() and return() statements
return.php
Copy Code The code is as follows:

$var = 'PHP';
return $var;
?>

noreturn.php
Copy code The code is as follows:

$var = 'PHP';
?>

testreturns.php
Copy code The code is as follows:

$foo = include 'return.php';
echo $foo; // prints 'PHP'
$ bar = include 'noreturn.php';
echo $bar; // prints 1
?>

The value of $bar is 1 because include ran successfully. Note the difference in the above examples. The first uses return() in the included file and the other does not. Several other ways to "include" files into variables are to use fopen(), file() or include() in conjunction with output control functions.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/327653.htmlTechArticlenclude() The include() statement includes and runs the specified file. The following documentation also applies to require(). The two structures are identical except for how they handle failure. include() generates an alert...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn