一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php include和require的區別深入解析

php include和require的區別深入解析

2020-04-17 12:12PHP教程網 PHP教程

本篇文章是對php中include與require的區別進行了詳細的分析介紹,需要的朋友參考下

Include()

The include() 語句包括并運行指定文件。

以下文檔也適用于require()。這兩種結構除了在如何處理失敗之外完全一樣。include() 產生一個警告而require() 則導致一個致命錯誤。換句話說,如果你想在遇到丟失文件時停止處理頁面就用require()。include() 就不是這樣,腳本會繼續運行。同時也要確認設置了合適的include_path。

當一個文件被包括時,其中所包含的代碼繼承了include 所在行的變量范圍。從該處開始,調用文件在該行處可用的任何變量在被調用的文件中也都可用。

例子12-3. 基本的 include() 例子
vars.php

復制代碼 代碼如下:


<?php
$color = 'green';
$fruit = 'apple';
?>


test.php

復制代碼 代碼如下:


<?php
echo "A $color $fruit"; // A
include 'vars.php';
echo "A $color $fruit"; // A green apple
?>


如果include 出現于調用文件中的一個函數里,則被調用的文件中所包含的所有代碼將表現得如同它們是在該函數內部定義的一樣。所以它將遵循該函數的變量范圍。

例子12-4. 函數中的包括

復制代碼 代碼如下:


<?php
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
?>


當一個文件被包括時,語法解析器在目標文件的開頭脫離PHP 模式并進入HTML 模式,到文件結尾處恢復。由于此原因,目標文件中應被當作PHP 代碼執行的任何代碼都必須被包括在有效的PHP 起始和結束標記之中。

如果“URL fopen wrappers”在PHP 中被激活(默認配置),可以用URL(通過HTTP)而不是本地文件來指定要被包括的文件。如果目標服務器將目標文件作為PHP 代碼解釋,則可以用適用于HTTP GET 的URL 請求字符串來向被包括的文件傳遞變量。嚴格的說這和包括一個文件并繼承父文件的變量空間并不是一回事;該腳本文件實際上已經在遠程服務器上運行了,而本地 腳本則包括了其結果。

警告
Windows 版本的PHP 目前還不支持該函數的遠程文件訪問,即使allow_url_fopen 選項已被激活。

例子12-5. 通過HTTP 進行的include()

復制代碼 代碼如下:


<?php
/* 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.
?>


相關信息參見使用遠程文件,fopen() 和file()。
因為include() 和require() 是特殊的語言結構,在條件語句中使用必須將其放在語句組中(花括號中)。

例子12-6. include() 與條件語句組

復制代碼 代碼如下:


<?php
// 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;
}
?>


處理返回值:可以在被包括的文件中使用return() 語句來終止該文件中程序的執行并返回調用它的腳本。同樣也可以從被包括的文件中返回值。可以像普通函數一樣獲得include 呼叫的返回值。

注: 在PHP 3 中,除非是在函數中調用否則被包括的文件中不能出現return。在此情況下return() 作用于該函數而不是整個文件。

例子12-7. include() 和return() 語句
return.php

復制代碼 代碼如下:


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


noreturn.php

復制代碼 代碼如下:


<?php
$var = 'PHP';
?>


testreturns.php

復制代碼 代碼如下:


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


$bar 的值為1 是因為include 成功運行了。注意以上例子中的區別。第一個在被包括的文件中用了return() 而另一個沒有。其它幾種把文件“包括”到變量的方法是用fopen(),file() 或者include() 連同輸出控制函數一起使用。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 网友自拍咪咪爱 | 国产精品四虎在线观看免费 | 拍拍叫痛的无挡视频免费 | 久久精品国产亚洲AV蜜臀 | aa视频免费| 娇小XXXXX第一次出血 | 成人免费网站视频ww | 免费理伦片高清在线 | 成年人免费看的视频 | 日韩在线二区 | 日韩免费高清专区 | 日日爽日日操 | 国产成人精品午夜在线播放 | 国产91在线精品 | 精品久久久久久午夜 | 国产自产2023最新麻豆 | 无人在线观看免费高清视频播放 | 厨房高h | 久久免费看少妇高潮A片特爽 | 久久亚洲高清观看 | 好大好爽好硬我要喷水了 | 色一情| 久99久热只有精品国产99 | 欧美一级v片 | 国产欧美一区二区精品性色99 | 色香视频在线 | 日韩在线视频免费观看 | 日本在线观看www鲁啊鲁视频 | 精品淑女少妇AV久久免费 | 色综合色综合 | 国产精品吹潮香蕉在线观看 | 天堂成人影院 | 国产精品一区二区久久不卡 | 国产精品国产色综合色 | www.男人的天堂 | 我们中文在线观看免费完整版 | 男女啪啪gif | 万域之王在线观看 | 日本大乳护士的引诱图片 | 国模娜娜a4u1546全套 | 美女被上漫画 |