我有一个关于OOP属性的简单查询。
我正在学习OOP。目前,我正在使用CodeIgniter,并计划迁移到Symfony。我想在潜水之前学习OOP原则。希望你指导我。
我只想问一下这样声明属性之间有什么区别:
FIRST:
class MyClass {
public $name;
public $age;
public function someMethod()
{
}
}
VS
SECOND:
class MyClass {
public function someMethod()
{
$name = '';
$age = 0;
}
}
根据我的理解,如果变量/属性仅由该方法使用,我将使用 SECOND 方法。
如果属性/变量将由类中的不同方法使用,则将使用 FIRST 方法。
希望你能用这个启发我。这就是我现在声明属性的方式。
谢谢,感谢您的所有评论和分享知识。
答案 0 :(得分:1)
你应该阅读关于变量范围的php文档。 http://php.net/manual/en/language.variables.scope.php
您的第一个示例是全局范围,这意味着该类可以通过该类的任何方法访问。第二个示例是局部范围,函数内使用的任何变量默认限制为本地函数范围。