2017-05-24 3 views
-2

を書かれて、私は私が今までPHPで持っていた、おそらく最も厄介な問題があります。どちらか$this->$profileはそれが最後のものである場合にのみ、書き込まれるか$this->$accountが書き込まれると思われる、いくつかの理由順でのみ最後の変数が

public $profile; 

public $account; 

    function __construct(){ 
    if(isset($_SESSION['uid'])){ 
     $this->$profile = $_SESSION['user_profile']; 
     $this->$account = $_SESSION['user_account']; 
     echo "<script> alert('".$this->$profile->forename."'); </script>"; //Shows nothing 
    }else{ 
     unset($_SESSION['user_profile']); 
     unset($_SESSION['user_account']); 
    } 
    } 

:以下のコードを参照してください。上記の状況で、プロファイル行を口座行の後ろに移動すると、書かれます。しかし、この場合はそうではありません。

変数はいずれもSQLステートメントから取得されたオブジェクトであり、変数のいずれかに直接アクセスすると有効です(例:$_SESSION['user_profile']->forename)。

アイデア?ありがとうございました。

+6

$this->$profile $this->$account 

は 'ます$ this-> profile'と'ます$ this-> account'の代わりに使用してみてください '$この - > $ profile'、 '$ this-> $ account' –

+1

よく調べられた@RyanHipkiss – Dale

+0

@RyanHipkissこれはうまくいきました。なぜなのかご存知ですか?私は前にそのようなトラブルがあったとは思わない。コメントありがとう。 – user3642576

答えて

2

あなたはvariable variablesを使用していますが、あなたはメンバ変数にアクセスしようとしているように、あなたのコードが見えます。

がこれを置き換えます。この

$this->profile 
$this->account 
関連する問題