OOP PHP 中的变量声明


Variable declarations in OOP PHP

在将变量与$this->变量引用一起使用之前,是否有必要在 PHP 中声明变量? 或者$this->变量的用法是否足以在方法中声明类变量?

例如使用:

class MyClass {
  public function setName($name) {
      $this->myName = $name;
  }
}

与以下相反:

class MyClass {
public $myName;
  public function setName($name) {
      $this->myName = $name;
  }
}

不,这不是必需的。

http://php.net/manual/en/language.oop5.overloading.php#object.get

尝试访问这些变量时会使用函数 __get()__set()

这可能会有一些意外的行为,例如,如果您有一个私有变量private $test;并且您尝试访问$obj->test您将收到警告,因为该变量在类外部无法访问。

在同一实例中,如果未定义变量,但您使用 $this->test = 5 设置了它,则可以使用 $var = $this->test; 访问它。

IDE 通常不会解析这些变量,但有些允许你使用 phpdocs 来帮助自动完成代码。

前任: /* @var Object $test */

正如其他人所说,这不是一个好主意或最佳实践。但这是可以做到的 https://ideone.com/R2uGva

<?php
class MyClass {
  public function setName($name) {
      $this->myName = $name;
  }
}
$kevin = new MyClass;
$kevin->setName('kevin');
var_dump($kevin);