2011-02-24 42 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']; 
    } 
}