8

如何include('./code.php');工作?我知道这相当于将代码直接“粘贴”在包含发生的位置,但是,例如:

如果我有两个页面,page1.php并且page2.php我需要在其中操作不同的变量和函数./code.php,是否会include()创建一个副本./code.php,或者它是否本质上链接回实际页面./code.php

4

5 回答 5

7

请参阅手册

如果您include是文本文件,它将在文档中显示为文本。

include不像复制粘贴

测试.php

<?php
echo '**';
$test = 'test';
include 'test.txt';
echo '**';
?>

测试.txt

echo $test;

上面的示例将输出:

**echo $test;**

如果你要包含 PHP 文件,你仍然需要 PHP 标签<?php?>.

此外,通常括号不会放在 之后include,如下所示:

include 'test.php';
于 2012-08-24T23:24:22.293 回答
6

基本上,当解释器遇到一个include 'foo.php';语句时,它会打开指定的文件,读取其所有内容,用另一个文件中的代码替换“include”位并继续解释:

<?php
echo "hello";

include('foo.php');

echo "world";

变成(理论上的)

<?php
echo "hello";

?>
{CONTENT OF foo.php}
<?php

echo "world";

然而,这一切只发生在内存中,而不是磁盘上。没有文件被更改或任何东西。

于 2012-08-24T23:32:17.233 回答
0

这取决于您如何包含code.php文件。如果您将 code.php 文件包含到 page1.php 然后 page2.php 那么您将可以访问它的 vars 并且它实际上只是“复制和粘贴”(注意这只是用来使其更容易理解,因为实际上面解释了它的动态)但是如果你像这样链接文件:

[code.php]
include('page1.php');
include('page2.php');

然后 code.php 将可以访问 page1.php 中的所有变量,但是:

  • page1.php 将无法访问 code.php 中的变量
  • page2.php 将无法访问 code.php 中的变量

因此,为了inheritcode.php 的功能page1.phppage2.php请务必执行以下操作:

[page1.php]
include('code.php');

[page2.php]
include('code.php');

然后它将按您的预期工作。所以只是一些要记住的东西。

于 2012-08-25T00:03:06.870 回答
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);

为添加声明语句的文件启用严格类型 (function.php)

它不适用于从外部文件 (caller.php) 进行的任何函数调用,
因为 PHP 在评估严格类型时总是会服从调用者。

Require 不像复制/粘贴那样工作

为了进一步理解,
关于如何执行 PHP 脚本的简短回答以及关于 include /
require 在 php 中的真正作用的更易于理解的解释

于 2019-01-08T23:59:20.707 回答
-1
include('./code.php'); // The Same As Pasting The Code From Code.PHP.

在任何情况下它都不会重定向到 Code.php。

于 2012-08-24T23:23:20.123 回答