<?php class a
{
var $snum = 0;
function test()
{
$this->snum++;
}
}
class b 
{
function b( $a )
{
$this->a = $a;
}
  function test1()
{   
   $this->a->snum++;  //想让这里在class a中再增加一个数字
}
}

$A = new a;

$B = new b($A);

$A->test();

echo $A->snum; //这里显示1

echo "<br>";

$B->test1(); //我想增加一位,变成2

echo $A->snum; //这里却不增加


?>

解决方案 »

  1.   

    上面的程序显然不能做到自增
    因为它们是两个独立对象,类中的对象,是不能共享其成员的,除非,一个对象向另一个对象传递一个消息,委托另一个对象去完成。在test方法添加一个参数:$obj
    方法体改为:$obj->snum++;
    $B->test1(); //我想增加一位,变成2
    ====改为:$B->test1($A);就行了
      

  2.   

    唠叨兄,其实是这个样子的,原来有一个DB类,会返回查询的次数我自己定义了一个类,类里面也包含了数据库查询语句,但是出来之后,想把类中的查询次数反馈到footer文件中,就是页脚文件,所以才想出来问这个问题。如果是面向对象应该是怎么样的呢?
      

  3.   

    footer文件中为什么不能重新读数据呢?