我是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();
?>
Run Code Online (Sandbox Code Playgroud)
在这段代码中,即使$declaredVar是唯一声明的变量,$undeclaredVar也是可访问和可用的 - 它似乎就好像我已将其声明为public.
如果未声明的类变量总是可以像这样访问,那么预先声明它们的重点是什么?
Fed*_*oca 42
这个变量不是未初始化的,它只是未声明的.
在类定义中声明变量是可读性的一种风格.另外,您可以设置辅助功能(私人或公共).
无论如何,明确声明变量与OOP无关,它是特定于编程语言的.在Java中,您不能这样做,因为必须显式声明变量.
Dav*_*her 15
如果在类中声明成员,则可以设置其可访问性,例如
private $varname;
Run Code Online (Sandbox Code Playgroud)
Mic*_*ssa 11
您应该始终声明您的成员变量并在您的类中指定它们的可访问性.我希望在我的功能之后将这些信息放在课程的最后.
一旦有足够的信息,您应该立即定义它们.可能在构造函数中或通过setter函数.
这样做非常重要,因为它使使用代码的人们的生活更加轻松.他们不必猜测不同的属性来自哪里或为什么他们在那里.此外,大多数(如果不是全部)IDE都不会接受类变量,除非你已经在某处声明了它们.代码完成/提示是IDE的众多优点之一,并且在不声明变量的情况下,您将使该功能无用.