我可以在PHP类方法中使用不带$ this的变量吗?

时间:2018-05-09 05:09:29

标签: php class

我想知道在PHP类方法中是否可以使用不带$ this的变量。那么我们可以在不使用$ this的情况下声明和初始化变量(也就是OOP中的属性)吗?

示例

public function set_variable()
{
    $var = "some value";
    return $var;
}

OR

public function set_variable()
{
    $this->var = "some value";
    return $this->var;
}

那么哪一个更正确,更有用?我知道如果我们没有用$ this来珍惜它,我们可以从类中的其他方法访问变量。

但是如果我们不需要在我们声明它的方法之外访问它呢?然后,我认为没有$ this就可以使用它。你觉得怎么样?

1 个答案:

答案 0 :(得分:3)

如果在类方法中声明一个变量并且仅供内部使用(例如在函数内部保存一个值),并且您只想将该值返回给调用函数,则以下方法是正确的:< / p>

public function set_variable()
{
    $var = "some value";  // $var will not be available outside the function.
    return $var;
}

如果您声明了某个全局变量,并且您想在函数内更改或设置任何值,则可以使用您提到的第二种方法:

class Demo{
    protected $var = '';
    public function set_variable()
    {
        $this->var = "some value";
        return $this->var;  // Here this function will return new value of the global variable `var`
    }
}