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

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

WBOY
WBOYOriginal
2016-06-23 14:24:33861browse


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;

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn