想象一下下面的包含文件,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它不會混淆,它被稱爲歧義,並且我不知道函數重定義在任何語言中都是不允許的。 –