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

php中文网
发布: 2016-06-23 14:24:33
原创
933人浏览过


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;
登录后复制

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号