php4中 $this=false; 是什么意思?

msvbprogrammer 2005-09-09 04:46:11
察看一段php4的代码,发现了这样的语句:$this=false; 不明白是送什么意思,请高手指点。php5已经不支持这样的代码了,请问如何写等效的代码?
...全文
268 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
-神仙- 2005-09-11
  • 打赏
  • 举报
回复
php4下可以这么用,来改变当前对象
php5就不允许了
shimch 2005-09-10
  • 打赏
  • 举报
回复
顶,我用php,还不知道这个,惭愧
hsboy 2005-09-10
  • 打赏
  • 举报
回复
你可以把$this=false;删除,然后根据函数的返回值来判断getArticle是否成功,如果成功再继续下面的操作。
surfchen 2005-09-10
  • 打赏
  • 举报
回复
应该没有什么好的解决方法。
你可以根据上下程序把这部分代码修改一下。改成兼容PHP5的
msvbprogrammer 2005-09-09
  • 打赏
  • 举报
回复
首先非常感谢!

现在我想将这段代码移植到php5下,有什么好的解决办法呢?
hsboy 2005-09-09
  • 打赏
  • 举报
回复
在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久了,所以这个小技巧你也用不到了。
msvbprogrammer 2005-09-09
  • 打赏
  • 举报
回复
在php5中报错:

Fatal error: Cannot re-assign $this in D:\abc\abc.php on line 68
msvbprogrammer 2005-09-09
  • 打赏
  • 举报
回复

$this = new MagArticle( $_GET['articleid'] );
if ( !$checkin_id = checkin( $this->articleid ) )
{
redirect_header( "javascript:history.go(-1)", 2, _AM_MAG_CHECKIN_FAILED );
exit();
}


那这一段怎么解释呢?
ccxxcc 2005-09-09
  • 打赏
  • 举报
回复
$this = false;销毁当前实体,然后返回一个false?
msvbprogrammer 2005-09-09
  • 打赏
  • 举报
回复
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);
}
surfchen 2005-09-09
  • 打赏
  • 举报
回复
给出上下代码片段
msvbprogrammer 2005-09-09
  • 打赏
  • 举报
回复
$this是php的关键字呀,它应该代表所在类的当前实体,不知道这样赋值是什么意思?在php5环境不通过
ccxxcc 2005-09-09
  • 打赏
  • 举报
回复
$this 应该是一个布尔变量 做一些流程控制 false代表非
php5还没可是学,但$this = 0;应该支持吧

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧