PHP面向对象的问题

wingoffire 2003-05-14 08:40:28
PHP面向对象的支持真得不行啊:(
请看这段代码
<?php
class c{
var $b1;
function c(){
$b1 = new b();
}
}
class b{
function hello()
{
echo "hello";
}
}
$c1=new c();
//$c1->b1->hello(); //方案一
$bb=$c1->b1; //方案二
$bb->hello();
?>
用上面两种方式,都不能输出hello,也就是说对象不能嵌套,可是我却在PEAR里看到很多$a->b->f();这样的语句,而且PEAR的发布信息上说这些包是稳定的,也就是这种语句能用,可是在我这里就是不行,郁闷啊,有朋友试过这种用法吗?或者是我的php设置不对?
...全文
43 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bonniewater 2003-08-24
  • 打赏
  • 举报
回复
class c{
var $b1;
var $str='52mm';
function c(){

$this->b1 = new b();

}
}
class b{

function hello()
{
echo "hello";
echo $this->str; //我想在这里使用类b的成员$str,怎么写?
}
}
yibotiemen 2003-08-24
  • 打赏
  • 举报
回复
来来来,我如果想
class c{
var $b1;
function c(){
var $str='52mm';
$this->b1 = new b();

}
}
class b{

function hello()
{
echo "hello";
echo '?'; //我想在这里使用类b的成员$str,怎么写?
}
}
$c1=new c();
$c1->b1->hello();
你们的方案是对的这个不容怀疑,帮我解决这个问题好吗?
leojschen 2003-05-14
  • 打赏
  • 举报
回复
php5,哪有下载
xuzuning 2003-05-14
  • 打赏
  • 举报
回复
你可以把两个类的定义次序对调一下
引用前先定义,php5也是这么要求的
wingoffire 2003-05-14
  • 打赏
  • 举报
回复
不好意思,的确是应该写成$this->b1= new b();
不过这样一来,问题更麻烦了,我是在pear里碰到这个问题的,运行的时候系统说pear源代码有错,也是调用了非对象的方式,可是,我看这个package的版本是稳定的,应该不会有这个问题吧!有兴趣的朋友可以看看Config这个包里面的PHPArray.php这个文件,我还是没有搞定
xuzuning 2003-05-14
  • 打赏
  • 举报
回复
语法错:
class c{
var $b1;
function c(){
$this->b1 = new b();
}
}
class b{
function hello()
{
echo "hello";
}
}
$c1=new c();
$c1->b1->hello(); //方案一 out hello
$bb=$c1->b1; //方案二 out hello
$bb->hello();
iamwho 2003-05-14
  • 打赏
  • 举报
回复
试试吧,我以前老犯这种错误

windows2000下通过
wingoffire 2003-05-14
  • 打赏
  • 举报
回复
不是这个问题:(
语法肯定是对的,就是不知道为什么,对象不能识别内部的对象
iamwho 2003-05-14
  • 打赏
  • 举报
回复
把 $b1 = new b();

改成 $this->b1 = new b();
laker_tmj 2003-05-14
  • 打赏
  • 举报
回复
up
xuzuning 2003-05-14
  • 打赏
  • 举报
回复
div版
http://snaps.php.net/

21,886

社区成员

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

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