类级变量的奇怪行为

I've looked at this code for over an hour, and it looks fine to me. However, the description variable is losing scope when I use the insertSubmit() function. The variable is set during construction but not when I use the insertSubmit(). Am I missing something here?

<?php session_start();

class SubmitNew {

var $title = "";
var $category = "";
var $summary = "";
var $description = "";  
var $username = "";
var $timestamp = "";
var $errors = "";
var $errorStr = "";
var $link = "";
var $db = "";

public function __construct() {
    $this->setVariables();
    $this->errors = 0;
    $this->p_id = 1;

}
public function setVariables() {
    $this->title = "1";
    $this->category = "2";
    $this->summary = "3";
    $this->description = "4";
    echo $this->description;
    $this->timestamp = mktime(date("G"), date("i"),
    date("s"), date("m") , date("d"), date("Y"));
}
public function errorBlank() {
    if($this->title == null) {
        $this->errorStr = $this->errorStr."blanktitle";
        $this->errors++;    
    } if($this->summary == null) {
        $this->erroStr = $this->errorStr."blanksummary";
        $this->errors++;            
    } if($this->description = null) {
        $this->erroStr = $this->errorStr."blankdescription";
        $this->errors++;    
    }
}
public function errorAll() {
    if($this->errors == 0) {
        return "success";
    } else {
        return $this->errorStr; 
    }
}
public function insertSubmit() {
    echo $this->description;
}   
}

The problem is located at errorBlank() function, when you do this:

} if($this->description = null) {

Instead of doing this:

} if($this->description == null) {

Note the extra equal sign! You were assigning null to $this->description, instead of comparing them!