类的相互调用问题

simonlsy 2005-06-10 11:51:53
<?

class a
{
var $snum = 0;
function test()
{
$this->snum++;
}
}


class b
{
function test1()
{
$a = new a;
$a->snum++; //想让这里在class a中再增加一个数字
}
}

$A = new a;

$B = new b;

$A->test("");

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

echo "<br>";

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

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


?>

如何让class b增加class a 中的$snum??
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
simonlsy 2005-06-12
  • 打赏
  • 举报
回复
数据是累加的~~!所以读取不了
不过已经解决了,就是把DB类和自定义的类全部放到一起。
对面向对象不熟悉,还需要继续学习~~!
simonlsy 2005-06-11
  • 打赏
  • 举报
回复
唠叨兄,其实是这个样子的,原来有一个DB类,会返回查询的次数

我自己定义了一个类,类里面也包含了数据库查询语句,但是出来之后,想把类中的查询次数反馈到footer文件中,就是页脚文件,所以才想出来问这个问题。

如果是面向对象应该是怎么样的呢?
HOOLOO 2005-06-11
  • 打赏
  • 举报
回复
footer文件中为什么不能重新读数据呢?
xuzuning 2005-06-10
  • 打赏
  • 举报
回复
思路有问题!
根本是面向过程的思维方式
reners 2005-06-10
  • 打赏
  • 举报
回复
上面的程序显然不能做到自增
因为它们是两个独立对象,类中的对象,是不能共享其成员的,除非,一个对象向另一个对象传递一个消息,委托另一个对象去完成。

在test方法添加一个参数:$obj
方法体改为:$obj->snum++;
$B->test1(); //我想增加一位,变成2
====改为:$B->test1($A);就行了
ice_berg16 2005-06-10
  • 打赏
  • 举报
回复
<?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; //这里却不增加


?>

21,882

社区成员

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

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