include('./code.php');
如何运作?我理解这相当于直接在包含发生的地方“粘贴”代码,但是,例如:
如果我有两个页面,page1.php
和page2.php
,我需要在./code.php
中操作不同的变量和函数,include()
是否会创建./code.php
的副本{1}},还是基本上链接回实际页面./code.php
?
答案 0 :(得分:7)
如果你include
是一个文本文件,它将在文档中显示为文本。
include
不的行为与复制粘贴相同:
<强> test.php的强>
<?php
echo '**';
$test = 'test';
include 'test.txt';
echo '**';
?>
<强>的test.txt 强>
echo $test;
上面的例子将输出:
**echo $test;**
如果要包含PHP文件,则仍需要使用PHP标记<?php
和?>
。
此外,通常括号不会放在include
之后,如下所示:
include 'test.php';
答案 1 :(得分:6)
基本上,当解释器命中include 'foo.php';
语句时,它会打开指定的文件,读取其所有内容,用另一个文件中的代码替换“include”位,然后继续解释:
<?php
echo "hello";
include('foo.php');
echo "world";
成为(理论)
<?php
echo "hello";
?>
{CONTENT OF foo.php}
<?php
echo "world";
但是,所有这些只发生在内存中,而不是发生在磁盘上。没有文件被更改或任何内容。
答案 2 :(得分:0)
这取决于您如何包含code.php
文件。如果你将code.php文件包含在page1.php中,然后将page2.php包含在内,那么你就可以访问它的vars,它会有效地“复制和粘贴”(beaware只是用来让它更容易理解,因为实际如上所述,如果您链接如下文件中的文件动态:
[code.php]
include('page1.php');
include('page2.php');
然后code.php可以访问page1.php中的所有变量,但是:
为了inherit
page1.php
,page2.php
和[page1.php]
include('code.php');
[page2.php]
include('code.php');
中的code.php的功能必须确实如下:
{{1}}
然后它将按预期工作。所以只需记住一些事情。
答案 3 :(得分:0)
包含的行为不像复制粘贴。
这是使用PHP严格类型声明的演示
<?php
// function.php (file)
declare (strict_types = 1);
function sum(int $a, int $b)
{
return $a + $b;
}
/**
* This will throw TypeError:
*/
// echo sum(5.2, 5);
但是,如果我从外部文件调用此函数
<?php
// caller.php (file)
require_once 'function.php';
/**
* This will Work instead of throwing a TypeError:
*/
echo sum(5.2, 5);
为添加了clarify语句的文件(function.php)启用了严格类型
它不适用于从外部文件(caller.php)进行的任何函数调用
因为在寻求评估严格类型时,PHP将始终服从调用者。
Require不能像复制/粘贴一样工作
为进一步了解,
Short answer on how PHP script is Executed&
A more comprehensible explanation on what include/require really does in php
答案 4 :(得分:-1)
include('./code.php'); // The Same As Pasting The Code From Code.PHP.
在任何情况下都不会重定向到Code.php。