>백엔드 개발 >PHP 튜토리얼 >类的成员可以用另一个类来声明么,对这个成员的赋值度需要this函数这样么

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

WBOY
WBOY원래의
2016-06-23 14:24:33863검색


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 ;
}

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


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

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->f();
 $cls->vo->tmp = 1; //这样可以么?还是必须用成员函数赋值
 


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


$cls->vo->tmp = 1;  //我测试这样赋值好像不可以啊?
你的代码估计写错了。
下面的代码与你逻辑相同,执行起来和期望效果相同
<?phpclass 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;

谢谢楼上各位,程序里面落下个分号!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.