OOP PHP中的变量声明

时间:2016-03-18 21:10:08

标签: php oop variables

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

例如使用:

class MyClass {

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

相反:

class MyClass {
public $myName;

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

2 个答案:

答案 0 :(得分:4)

不,这不是必需的。

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

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

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

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

IDE通常无法解决这些变量,但有些可让您使用phpdoc来帮助完成自动代码。

例: /* @var Object $test */

答案 1 :(得分:1)

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

<?php
class MyClass {

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

$kevin = new MyClass;
$kevin->setName('kevin');
var_dump($kevin);