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

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

WBOY
Release: 2016-06-23 14:24:33
Original
860 people have browsed it


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;
Copy after login
Copy after login
Copy after login

class B
{
var $vo = A; //这里就不对了!
var $tmp = 0 ;
}

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



$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;
Copy after login
Copy after login
Copy after login



$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;
Copy after login

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

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template