3

为什么我必须在一个类中初始化变量?

$test = new myclass();
class myclass {
    private $var; // WHY THIS LINE?

    public function sayHello() {
        $this->var = 'hello';
        echo $this->var;
    }
}
$test -> sayHello();

当我删除private $var;此示例的行时,也可以。

为什么我必须在类中初始化变量?

4

3 回答 3

10

初始化变量有一些好处:

  • 您声明您有意使用变量名。这可以帮助突出显示成为未声明的变量名称的拼写错误
  • 您可以设置变量的范围。您希望它是公开的、受保护的还是私有的?你可能希望它是静态的
  • PHP 有一些关于你在做什么的信息。它可能有助于优化以加快执行速度。

声明变量是一种很好的做法,但这不是必需的。

于 2013-09-20T14:45:23.763 回答
0

我不确定我是否理解你的问题,但我相信你的意思是为什么要使用额外的代码行,而没有它,整个代码也能正常工作。

答案是——当然你不必使用private $var;. 但是尽管这对于 PHP 引擎并不重要,但当您的代码增长时,它对您非常有用。想象一下,你有一个几千行长的类。每次仅检查您仅在类中使用的许多变量中的哪些(私有变量)以及您可以在外部使用哪些变量(公共)将是一场灾难。如果您现在看不到它,请不要担心,我相信您很快就会发现它的实用性;)

于 2013-09-20T14:51:48.050 回答
0

如果您没有声明像私有这样的访问说明符,那么默认它是公共的。

于 2013-09-20T14:59:54.533 回答