PHP类变量问题

asd*_*sdf 0 php

我有以下类来处理我的用户登录/注销(我只包括这里的相关内容).我想将登录访问login.php的用户重定向到该帐户页面.我这样做......

    $User = new User();
if ($User->loggedin = 'true') header('Location:MyAccountNEW.php');
Run Code Online (Sandbox Code Playgroud)

问题是这重定向到myaccountnew.php天气我把它切换为真或假..(虽然它不是条件是(2> 3).当我回应$用户登录时,没有任何事情出现.我是有点难过......

这是班上的人

Class User {

public $loggedin = false;
public $username = "";
public $ShopperID = "";

function __construct() {
    $this->CheckLogin();
}

function CheckLogin() {
    if (!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) {
            $this->loggedin = true;
            $this->username = $_SESSION['Username'];
    }
    else {
        $this->loggedin = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

看看logout.php是什么样的

<?php include ("base.php");
  include("userclass.php");

  $User = new User();
  $User->loggedin = false;
Run Code Online (Sandbox Code Playgroud)

$ _SESSION = array(); session_destroy(); ?>

nic*_*ckf 6

你使用单个等于(=)而不是两个(==)

另外,我强烈建议添加:

if ($User->loggedIn == 'true') {
    header('location: somewhereelse.php');
    die(); // <-- important!!
}
Run Code Online (Sandbox Code Playgroud)

此外,由于该属性是布尔值,您应该与实际的bool值true而不是字符串进行比较"true".

if ($User->loggedIn == true)

// or even shorter:

if ($User->loggedIn)
Run Code Online (Sandbox Code Playgroud)

这是因为:

true == "true"
true == "foo"
true == "false"
Run Code Online (Sandbox Code Playgroud)

除空字符串或字符串之外的任何字符串值都"0"被视为true.