我什么时候宣布在PHP类变量?我什么时候宣布在PHP类变量?(When should I decla

2019-05-16 23:40发布

我是新来的OOP模式,所以可能存在该问题的一个简单的解释...

你总是需要一个类来声明社会的广泛对象的变量? 例如:

<?php

class TestClass
{
    var $declaredVar;

    function __construct()
    {
        $this->declaredVar = "I am a declared variable.";
        $this->undeclaredVar = "I wasn't declared, but I still work.";
    }

    function display()
    {
        echo $this->declaredVar . "<br />";
        echo $this->undeclaredVar;
        echo "<br /><br />"; 
    }
}

$test = new TestClass;
$test->display();

$test->declaredVar = "The declared variable was changed.";
$test->undeclaredVar = "The undeclared variable was changed.";

$test->display();

?>

在这段代码中,即使$declaredVar是唯一声明的变量, $undeclaredVar是一样访问和使用-它似乎表现得好像我已经宣布它为公众。

如果未声明的类变量总是这样访问,什么是他们声明所有前面的点?

Answer 1:

该变量不初始化,它只是未申报。

在类定义声明的变量是风格可读性点。 另外,您可以设置可访问性(私有或公共)。

总之,明确声明变量无关与OOP,它的编程语言特定的。 在Java中,你不能这样做,因为变量必须显式声明。



Answer 2:

如果你声明的类中的成员,你可以设置它的辅助功能如

private $varname;


Answer 3:

你应该总是声明你的成员变量和你的类中指定的可访问性。 我喜欢把这些信息在课程后,我的函数结束。

你应该尽快将它们定义为你有足够的信息来这样做。 可能是在构造函数或通过setter函数。

要做到这一点,因为它使人们的生活与你的代码的工作更加容易是很重要的。 他们不必去猜测,不同的性质来自或为什么他们那里。 此外,大多数(如果不是全部)的IDE不会对类变量,除非你在什么地方宣称他们回暖。 代码完成/提示是集成开发环境的诸多好处之一,不声明变量,都会使该功能无用。



Answer 4:

封装的通用OOP范式说,你不应该让你的内心状态变量出方,这意味着他们应该是私人的,它允许你改变你的类的实现,而不需要改变,你使用它的代码。 这是更好的做法是通过初始化类的构造函数和getter和setter方法变量。



Answer 5:

在一般的变量,应尽快你有足够的信息做正确的初始化。

如果一个类变量需要理智地初始化某些信息那么信息应该传递给构造。

使用PHP的语法在定义点隐含声明变量是,恕我直言,以引入错误一个好办法 - 如果你的类需要一个变量,然后声明它,并使用所有的信息隐藏了OOP,给您。



Answer 6:

随着费德里科Culloca说,“那变量没有未初始化,它只是未申报”。 也让他们表现得就像适用于他们的公共修改你没有定义任何访问修饰符他们。

您可能已经知道了。 PHP是一种松散类型的语言。 但是,程序员应该始终遵循最佳实践(而不是在PHP中使用原始数据类型)。

您应该使用专用改性剂类级别的变量,并为他们提供访问和mutator方法(getter和setter)。



文章来源: When should I declare variables in a PHP class?
标签: php oop