1 回答

TA貢獻1911條經驗 獲得超7個贊
該include指令將指定文件中的代碼帶入作用域。從心理上講,您只需將 include 指令替換為該文件內的代碼塊,實際上并沒有什么區別。知道這一點,您的代碼實際上是:
? ? <?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>
編輯
有四個指令用于將代碼引入當前進程/請求的范圍。在我命名它們之前,請注意我說的是當前流程/請求。如果有 10 個人點擊了您的登錄頁面,您將有 10 個進程/請求。同樣,如果 1 個人點擊您的登錄頁面 10 次,您也將有 10 個進程/請求。這是 PHP 的本質,除非您真正注意到性能問題,否則我不會為此擔心。
這四個指令是include
、include_once
和require
。require_once
以 結尾的指令_once
保證所提供的文件只會被帶入進程一次。其他兩個指令允許每個進程多次包含一個文件。include
和之間的區別require
很微妙,但include
如果找不到文件,基本上會生成可忽略的警告,而require
會拋出致命錯誤。
一般來說,我個人總是建議您使用require_once
for all include?,除非您明確有理由多次引入代碼。例如,如果您有一個分頁器小部件需要位于表格的頂部和底部,那么多次包含同一文件是一個很好的用途。我從來沒有使用過include
orinclude_once
因為我無法想象一個包含問題的場景對我來說是可以接受的。
此外,作為旁注,PHP 以一種可能令人驚訝的方式解析文件的路徑。例如,如果您使用include 'file.php';
它實際上并不意味著將文件包含在當前目錄中。相反,有一個管理員可以設置的可選“包含路徑”(就我而言,可以說是遺留原因),并使用該語法首先搜索包含路徑。如果您沒有包含路徑,或者在該路徑中找不到該文件,則使用本地文件夾。出于這個原因,我建議始終使用“路徑語義”來包含文件,這幾乎可以歸結為以句點或正斜杠或諸如__DIR__
.
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報