我想知道在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就可以使用它。你觉得怎么样?
答案 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`
}
}