日期:2014-05-17  浏览次数:20832 次

类的成员可以用另一个类来声明么,对这个成员的赋值度需要this函数这样么

class A
{
   var $sun = '';
   var $sav = false;
}

class B
{
   var $vo = A;
   var $tmp = 0 ;
}

这样不对吧?

那这样:class B

    var $vo ;
   var $tmp = 0 ;
   function f()
   {
      $this->vo = new a;
    }


在使用中:
$cls = new B ;
$cls->vo->tmp = 1; //这样也不可以啊? 用类成员的函数操作?









------解决方案--------------------
$cls = new B ;
$cls->f();//因为你的vo属性在这个方法里赋的值啊!
$cls->vo->tmp = 1;
 
------解决方案--------------------
class B
{
   var $vo = A; //这里就不对了!
   var $tmp = 0 ;
}

------解决方案--------------------
引用:
Quote: 引用:

$cls = new B ;
$cls->f();//因为你的vo属性在这个方法里赋的值啊!
$cls->vo->tmp = 1;
 



$cls->vo->tmp = 1;  //我测试这样赋值好像不可以啊?

你的代码估计写错了。
下面的代码与你逻辑相同,执行起来和期望效果相同
<?php
class A {}
class B {
var $attrV;
function setAttrV()
{
$this->attrV = new A();
}
}

$obj_b = new B();
$obj_b->setAttrV();
$obj_b->attrV->attrA = 'A';
echo '$obj_b->attrV->attrA=' . $obj_b->attrV->attrA;