我对在函数中包含文件的理解是它保持在该函数范围内:
如果包含出现在调用文件中的函数内部,则被调用文件中包含的所有代码的行为就好像它已在该函数中定义一样。因此,它将遵循该函数的变量范围。
但是当我这样做时,第二个与第一个发生冲突并告诉我该类已被声明!
运行此 php 页面以查看错误(您将需要所有三个 PHP 页面)
<?php
class TestOnce
{
function __construct()
{
$this->includeOnce();
}
function includeOnce()
{
//This should include it once
include_once "once.php";
var_dump( $once );
}
function includeSomethingThatIncludesOnce()
{
include_once "includeonce.php";
var_dump( $once );
}
}
$test = new TestOnce();
$test->includeSomethingThatIncludesOnce();
?>
这也包括一次,但被告知它已经包含在该函数中/
<?php
//This should include it once
include "once.php";
var_dump( $once );
?>
这是声明类和实例变量的“一次”
<?php
class Once
{
}
$once = new Once();
?>
为什么包含不限制在函数的范围内?我将如何实现这一目标?