donglao4370 2015-03-12 22:30
浏览 12
已采纳

如何在类变量和函数参数中使用变量变量

This is what I want to do:

class Contacts {

    private $_plural = 'contacts';
    private $_single = 'contact';
    private $_factory = 'contactfactory';
    private $_model = 'contact_model';

    private $_idname = $_plural . "Id";

    function a($$_idname = 0) {

    }
}

These two lines:

private $_idname = $_plural . "Id";

and

function a ($$_idname = 0) {

aren't working. Why? And how can I fix this?

EDIT

About the function argument:

If $_idname = "contactId" I want the argument to be $contactId. That's why I have two dollar signs there. This might be not the correct way to handle this, but this is what I want to accomplish.

  • 写回答

2条回答 默认 最新

  • doouzlrvb01417498 2015-03-12 22:37
    关注

    You could change

    private $_idname = $_plural . "Id";
    

    to

    private $_idname;
    public function __construct(){
      $this->_idname = $this->_plural.'Id';
    }
    

    first.

    Not seeing enough in function a. Probably more like:

    public function a($really = 'What is the point of those underscores?'){
      ${$this->_idname} = $really; // local $contacts var holds $really
    }
    

    I'm really guessing that you want to have a method that will automatically change your instantiated Object property. You don't need a variable variable for that. If you want to affect a variable which you are passing as an argument it's &$yourVar. There is no need to pass a property of an instantiated Object to its own method, since you already have access to it within the method with $this->yourVar.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么