Home  >  Article  >  Backend Development  >  The difference between php include and require_PHP tutorial

The difference between php include and require_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:44:51800browse

include()

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

$color = 'green';

$fruit = 'apple';

?>

test.php

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 the function. So it will follow the variable scope of that function.

Example 12-4. Includes in functions

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 enabled 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 is actually run on the remote server, and the local script includes its results.

Warning

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

Example 12-5. include() over HTTP

/* 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 PHP

include '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.

?>

See Using remote files, fopen() and file() for related information.

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

// 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 within a function. In this case return() acts on the function rather than the entire file.

Example 12-7. include() and return() statements

return.php

$var = 'PHP';

return $var;

?>

noreturn.php

$var = 'PHP';

?>

testreturns.php

$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/478721.htmlTechArticleinclude() 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 a...
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