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 关注
- 101 浏览
添加回答
举报