2011-02-24 72 views
3
class struct { 
public $variable=$_SESSION['Example']; 
} 

如何調用會話並將其放入php類中的變量中?有沒有理由不能在課堂上公開申請?

+0

4個:)下面的會議同樣有效的解決方案相同圍ü沒有工作11?! – philwinkle 2011-02-24 05:59:54

+0

由於$ _SESSION是一個超級全局變量,爲什麼你需要將它分配給一個變量時,你可以直接在任何地方直接使用$ _SESSION ['Example']創建額外的變量並將數據複製到它並不是非常有效。唯一的原因是如果你認爲在你實例化對象後會話中'Example'的值可能會改變 – 2012-04-24 13:38:37

回答

6

http://php.net/manual/en/language.oop5.php

class struct { 
public $variable; 
public function __construct(){ 
    session_start(); 
    $this->variable = $_SESSION['Example']; 
} 
} 
+0

你也擊敗了session_start(); +1 – 2011-02-24 06:11:13

3
class struct { 
    public $variable; 

    public function __construct(){ 
    session_start(); 
    $this->variable = $_SESSION['Example']; 
    } 
} 
+0

+1使用session_start() – philwinkle 2011-02-24 06:06:20

2

您不能在定義中設置任何屬性,除非它們是常量,例如, TRUE,array()

__construct()你可以設置它。

+0

「__FILE__」是常量嗎?我可以這樣做'public $ var = __ FILE__' – Daric 2011-02-24 05:58:58

+0

@WhoAmI是的,這是一個魔術常數,並且[它有效](http://codepad.org/9Axu9Xsk)。 – alex 2011-02-24 06:00:58

3

屬性只能有字面默認值,不能是任意表達式。要做到這一點最簡單的方法是:

class Struct { 
    public $variable; 

    public function __construct() { 
     $this->variable = $_SESSION['Example']; 
    } 
} 
相關問題