$this 应该是一个布尔变量 做一些流程控制 false代表非
php5还没可是学,但$this = 0;应该支持吧

解决方案 »

  1.   

    $this是php的关键字呀,它应该代表所在类的当前实体,不知道这样赋值是什么意思?在php5环境不通过
      

  2.   

    function getArticle($articleid)
        {
            $sql = "SELECT * FROM " . $this->table . " WHERE articleid=" . $articleid . " ";
            $array = $this->db->fetchArray($this->db->query($sql));
            if (!is_array($array))
            {
                $this = false;
                return false;
            }
            $this->makeArticle($array);
        }
      

  3.   

    $this = false;销毁当前实体,然后返回一个false?
      

  4.   


            $this = new MagArticle( $_GET['articleid'] );
            if ( !$checkin_id = checkin( $this->articleid ) )
            {
                redirect_header( "javascript:history.go(-1)", 2, _AM_MAG_CHECKIN_FAILED );
                exit();
            } 
    那这一段怎么解释呢?
      

  5.   

    在php5中报错:Fatal error: Cannot re-assign $this in D:\abc\abc.php on line 68
      

  6.   

    在PHP4中给$this赋值是允许的,但是PHP5中已经不允许。简单的说,在PHP4中通常利用这一个小手段来返回一个非对象的标量值来表示对象没有创建成功。这种用法通常出现在一个构造函数或者类似于构造函数作用的其他函数里面。
    举一个简单例子:
    class Student {
        var $name = '';
        function Student($id)
        {
             if ($id <= 0) $this = FALSE;
             else
             {
                 mysql_query(...);
                 mysql_fetch_row(...);
                 $this->name = ...;
             }
        }
    }
    $stu1 = new Student(-1);
    if (is_object($stu1))
        print $stu1->name;
    ?>不过现在PHP5已经发布n久了,所以这个小技巧你也用不到了。
      

  7.   

    首先非常感谢!现在我想将这段代码移植到php5下,有什么好的解决办法呢?
      

  8.   

    应该没有什么好的解决方法。
    你可以根据上下程序把这部分代码修改一下。改成兼容PHP5的
      

  9.   

    你可以把$this=false;删除,然后根据函数的返回值来判断getArticle是否成功,如果成功再继续下面的操作。
      

  10.   

    顶,我用php,还不知道这个,惭愧
      

  11.   

    php4下可以这么用,来改变当前对象
    php5就不允许了