php - 我可以在 PHP 类方法中使用没有 $this 的变量吗?
问题描述
我想知道是否可以在 PHP 类方法中使用没有 $this 的变量。那么我们可以在不使用 $this 的情况下声明和初始化一个变量(OOP 中的属性)吗?
例子
public function set_variable()
{
$var = "some value";
return $var;
}
或者
public function set_variable()
{
$this->var = "some value";
return $this->var;
}
那么哪一个是正确的和更有用的呢?我知道如果我们没有用 $this 珍贵地声明它,我们就不能从类中的其他方法访问变量。
但是,如果我们不需要在声明它的方法之外访问它呢?然后,我认为无需 $this 就可以简单地使用它。你怎么看?
解决方案
如果您在类方法中声明了一个变量并且仅供内部使用(例如,在函数内部保存一个值),并且您只想将值返回给调用函数,则以下方法是正确的:
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`
}
}
推荐阅读
- apache-spark - 如何在 Spark join 中配置 PoolingOption
- r - R 中的聚合不会返回控制台上显示的实际数据
- ruby-on-rails - Ruby on Rails 初学者问题:平等
- python - 有没有办法发送到 python 3.8 套接字模块中的所有连接?
- java - 如何强制 Jena API 的 findShortestPath 方法执行 BFS
代替 ? - sql - 使用新的 ASP.NET Core 应用程序连接到 SQL Server 时出现问题
- python-3.x - Python条件查找?
- python-2.7 - 使用 autoit 从我的 python 脚本中执行 ENTER
- excel - 使用自动过滤器时如何仅选择可见行
- kotlin-android-extensions - 如何生成一定范围内的随机数?应用程序不断停止