1 回答

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
該include指令將指定文件中的代碼帶入作用域。從心理上講,您只需將 include 指令替換為該文件內(nèi)的代碼塊,實(shí)際上并沒(méi)有什么區(qū)別。知道這一點(diǎn),您的代碼實(shí)際上是:
? ? <?php?
? ? //include_once("other_one.php");
? ? $name = $_POST['name'];
? ? $pass = $_POST['password'];
? ? echo "From other_one.php".$name." ".$pass."<br>";
? ? $n1 = $_POST['name'];
? ? $n2 = $_POST['password'];
? ? echo "From this_one.php ".$n1." ".$n2."<br>";
? ? ?>
<form action="" method="POST">
? ? <input type="text" name="name">
? ? <input type="password" name="password">
? ? <button type="submit" name="Submit">Login</button>
</form>
編輯
有四個(gè)指令用于將代碼引入當(dāng)前進(jìn)程/請(qǐng)求的范圍。在我命名它們之前,請(qǐng)注意我說(shuō)的是當(dāng)前流程/請(qǐng)求。如果有 10 個(gè)人點(diǎn)擊了您的登錄頁(yè)面,您將有 10 個(gè)進(jìn)程/請(qǐng)求。同樣,如果 1 個(gè)人點(diǎn)擊您的登錄頁(yè)面 10 次,您也將有 10 個(gè)進(jìn)程/請(qǐng)求。這是 PHP 的本質(zhì),除非您真正注意到性能問(wèn)題,否則我不會(huì)為此擔(dān)心。
這四個(gè)指令是include
、include_once
和require
。require_once
以 結(jié)尾的指令_once
保證所提供的文件只會(huì)被帶入進(jìn)程一次。其他兩個(gè)指令允許每個(gè)進(jìn)程多次包含一個(gè)文件。include
和之間的區(qū)別require
很微妙,但include
如果找不到文件,基本上會(huì)生成可忽略的警告,而require
會(huì)拋出致命錯(cuò)誤。
一般來(lái)說(shuō),我個(gè)人總是建議您使用require_once
for all include?,除非您明確有理由多次引入代碼。例如,如果您有一個(gè)分頁(yè)器小部件需要位于表格的頂部和底部,那么多次包含同一文件是一個(gè)很好的用途。我從來(lái)沒(méi)有使用過(guò)include
orinclude_once
因?yàn)槲覠o(wú)法想象一個(gè)包含問(wèn)題的場(chǎng)景對(duì)我來(lái)說(shuō)是可以接受的。
此外,作為旁注,PHP 以一種可能令人驚訝的方式解析文件的路徑。例如,如果您使用include 'file.php';
它實(shí)際上并不意味著將文件包含在當(dāng)前目錄中。相反,有一個(gè)管理員可以設(shè)置的可選“包含路徑”(就我而言,可以說(shuō)是遺留原因),并使用該語(yǔ)法首先搜索包含路徑。如果您沒(méi)有包含路徑,或者在該路徑中找不到該文件,則使用本地文件夾。出于這個(gè)原因,我建議始終使用“路徑語(yǔ)義”來(lái)包含文件,這幾乎可以歸結(jié)為以句點(diǎn)或正斜杠或諸如__DIR__
.
- 1 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報(bào)