怕怕的问:父类可以访问子类的变量并且存储么(php5)

mysqlmysql 2005-04-07 03:07:14
<?
class a
{
public $real_id;//信息的真正Id

function exists_data()//存在用户发布的信息
{
echo "在a里面打印:";
print_r ($this);
echo "<br>";
return true;
}
}
$a = new a();

class b extends a
{
private $data;
private $table = BidInfoTab;
private $data_id = "bid";
private $dir = "bid";

function del()//删除信息
{
if (isset($this->data[$this->data_id]))
{
echo "<br>";
echo "在b里面打印:";
echo print_r ($this);
}
}

function exists()
{
if ($this->exists_data())
return true;
else
return false;
}

public function __get($property)
{
if (isset($this->data[$property]))
{
return $this->data[$property];
}
else
{
return false;
}

}

public function __set($property, $value)
{
$this->data[$property] = $value;
}
}
$b = new b();


$b->bid = 5;
if ($b->exists())//判断是否为用户归属的信息
{
if ($b->del())
{
//echo "<script>alert('信息删除成功');history.back();</script>";
}
}
?>

如上代码,a里面可以访问到b里的变量,为啥呢?
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzjw 2005-04-07
  • 打赏
  • 举报
回复
$b->bid = 5;
if ($b->exists())//判断是否为用户归属的信息
{
if ($b->del())
{
//echo "<script>alert('信息删除成功');history.back();</script>";
}
}

-------------------------
你就没用到a对象中的方法,所以,你的问题本就不是问题。b从a继承,当然具有a的公有属性和方法
Meteorlet 2005-04-07
  • 打赏
  • 举报
回复
不是a里访问b的变量,是b继承了a的方法,所以在方法里显示的是b对象
skystar008 2005-04-07
  • 打赏
  • 举报
回复
看看关键字啊。
-神仙- 2005-04-07
  • 打赏
  • 举报
回复
没看明白
你的代码里好像a没有访问b啊

21,891

社区成员

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

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