想象一下下面的包含文件,hello.php
:
function hello()
{
return 'Hello World';
}
$a = 0;
现在想象一下下面的文件,index.php
:
include 'hello.php';
$a = 1;
hello();
include 'hello.php';
hello();
echo $a; // $a = 0, not 1
现在您的代码将有一个致命的错误,因为该功能已被定义了两次。使用include_once
可以避免这种情况,因为它只包含hello.php
一次。此外,与variable value reassignment
做,$a
(应的代码编译)将被重置为0
从意见,请认为这是一个侧回答 - 如果你正在寻找的东西,其中一个复位变量集多次是必需的,我想用Reset
这样的方法来使用这个类,如果你不想实例化它,你甚至可以使它成为静态的,如下所示:
public class MyVariables
{
public static $MyVariable = "Hello";
public static $AnotherVariable = 5;
public static function Reset()
{
self::$MyVariable = "Hello";
self::$AnotherVariable = 5;
}
}
用法like:
MyVariables::$MyVariable = "Goodbye";
MyVariables::Reset();
echo MyVariables::$MyVariable; // Hello
你不能定义一个函数两次,你会得到一个致命的错误。 –
@Pekka웃 - 我明白,但是这会导致PHP会混淆如果允许重新定义的加载哪个版本的函数? – user481913
@ user481913它不会混淆,它被称为歧义,并且我不知道函数重定义在任何语言中都是不允许的。 –