php ,我自定义了两个类,A,B,我想将A作为B的一个成员,但是怎么定义,怎么初始化,

在B的成员函数中,怎么调用呢?我的写法<pre>classA{publicfunctionShow(){echo"AAAAAAAA";}}classB{public$m_... 在B的成员函数中,怎么调用呢?我的写法
<pre>
class A
{
public function Show(){echo "AAAAAAAA";}
}

class B
{
public $m_aa;
public function init($obj)
{
$m_aa = $obj;
}
public function test()
{
$m_aa->Show();
}
}
调用B: $bbb = new B():
$bbb->init(new A());
$bbb->test();
</pre>
总是说,我调了个non object对象,搞不明白什么情况,希望大家能指点一二,谢谢了,没有财富值了。。。。。。。。
<?php
class A
{
public function show()
{
echo "<script language='javascript' type='text/javascript'>";
echo "alert(\"asdasdasasdasdasd\")";
echo "</script>";
}
}
class B
{
public $m_a;

public function init($obj)
{
$m_a = $obj;
}
public function test()
{
$this->m_a->show();
}
}
$B = new B();
$B->init(new A());
$B->test();
?>

PHP Fatal error: Call to a member function show() on a non-object in F:\Studio\bestbear\test.php on line 21
展开
 我来答
douyl_2010
2012-10-28 · TA获得超过284个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:103万
展开全部
$B = new B();
var_dump($B); //用这个调试出来
object(B)#1 (1) {
["m_a"]=>
NULL
}
说明B对象中有一个属性m_a为NULL
public function init($obj)
{
$m_a = $obj;
}
你这个init函数应该是初始化属性吧
这个$m_a是什么意思呢?这不是访问属性的正确语法$this->m_a这才对
$this->m_a = $obj;

就可以运行正确了
php_an
2012-10-30
知道答主
回答量:9
采纳率:0%
帮助的人:6.7万
展开全部
public function init($obj)
{
$m_a = $obj;
}
改为:
public function init($obj)
{
$this->m_a = $obj;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xwtlyss126
2012-10-28 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:100%
帮助的人:20.2万
展开全部
$m_aa改为$this->m_aa.
追问
$this->m_aa.一样的 all to a member function show on a non-object
追答
两处都要改,我这里运行没问提
m_aa = $obj;
}
public function test()
{
$this->m_aa->Show();
}
}
$bbb = new B();
$bbb->init(new A());
$bbb->test();
?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式