2015-12-26 98 views
1

我需要一個可以在所有正在使用的PHP文件中都可以訪問的變量,即我應該能夠讀取它並更改其值。如何在一個類中定義/聲明一個變量,使其可以在PHP的其他文件中訪問?

我試圖與變量x一個文件來聲明一個類:

在file1.php

public class sample{ 
    public static $curruser = '0'; 

    public function getValue() { 
     return self::$curruser; 
    } 

    public function setValue($val){ 
     self::$curruser = $val; 
    } 
} 

它正在file2.php致電sample::setValue($val)設置。這個頁面有一個重定向到file3.php

我需要訪問這個變量file3.php:

include 'file1.php'; 
print sample::getValue(); 

這讓我0,而不是我在file2.php設置的值。

很明顯,我對PHP中靜態變量的理解有點不穩定。有沒有適當的方法來設置和訪問跨文件的變量?

+0

您是否嘗試過將文件包含在您希望它包含在文件中,或通過get/post將文件傳遞到文件。 – Zapp

+0

您需要使用存儲來在不同的請求之間保存狀態。 –

+0

@Zapp:包括東西沒有工作。我需要多次更改該變量。 file3.php具有重定向到自身的提交按鈕。所以我不認爲get或post會起作用。 – xerocool

回答

0

如果您希望數據在請求之間持續存在,請嘗試使用會話或某種緩存機制。

+0

會話無法工作,因爲我需要更改變量的值。你能詳細解釋一下緩存機制部分嗎? – xerocool

+0

http://php.net/manual/en/function.apc-store.php – xamoxer1

+1

@xerocool,你可以改變會話變量的值。您可以像使用$ _POST數組或$ _GET數組一樣使用$ _SESSION數組。 $ _SESSION ['myVariable'] =「newValue」; – Tim

0

我建議限定常數是這樣的:

define('CONSTANT_NAME' ,$value); 

和訪問這樣的值:

echo CONSTANT_NAME; 

,或者使用靜態函數和靜態值和靜態函數是這樣的:

public static function setValue($val){ 
    self::$curruser = $val; 
} 
public static function getValue() { 
    return self::$curruser; 
} 
+0

我試過使用靜態函數。沒有工作。另外,如果我使用define,我可以在file3.php中更改變量的值嗎? – xerocool

+0

無法更改常量 –

+0

@xerocool我編輯了我的代碼...嘗試一下 –

相關問題