【问题标题】:Access variable in another method from static method in same class从同一类中的静态方法访问另一个方法中的变量
【发布时间】:2016-09-16 09:52:03
【问题描述】:

我正在寻找执行以下操作的最佳/正确方法:

myClass::getSomething('stuff');

class myClass
{

    public static function getSomething($var) {

        $obj = new static();
        $obj->var = $var;

        $obj->somethingElse();

    }

    public function somethingElse() {

        // I need to access $obj->var in here

    }

}

我是否将$obj 传递给somethingElse(),这样对吗?

【问题讨论】:

  • getSomething 方法看起来像是属于工厂的。

标签: php class oop


【解决方案1】:

$objmyClass 的一个实例:它有一个方法somethingElse(),而你刚刚添加了一个属性$var

所以在你的方法中你可以直接访问属性:

public function somethingElse() {

    $the_contents_of_var = $this->var;

}

【讨论】:

  • 我显然今天过得很糟糕。我发誓我做到了,并收到了错误Using $this when not in object context。但我又试了一次,它成功了!!我想我可以收工了……
  • @superphonic 也许你之前做过self::somethingElse(),它看起来有点混乱(至少对我来说......)有一个静态方法来构造与对象相同的类中的对象你正在建造:-)
  • 好吧,当你这样说的时候:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
  • 2015-01-21
相关资源
最近更新 更多