Heim >Backend-Entwicklung >PHP-Tutorial >类的成员可以用另一个类来声明么,对这个成员的赋值度需要this函数这样么

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

WBOY
WBOYOriginal
2016-06-23 14:24:33863Durchsuche


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;

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn