对于我最新的网站,我一直在尝试使用类。主要是让自己更多地了解 OOP 并通过经验学习。
每当我在班级中需要一个“变量”时,我都会创建一个属性,例如:
class someClass
{
var $valueToUseHere; // Only used internally - can I just use a variable?
public function doStuff()
{
$this->valueToUseHere = 60;
// Do more stuff here...
}
}
Run Code Online (Sandbox Code Playgroud)
直到现在,当我更深入地研究代码并尝试进行一些优化时,我才注意到我的函数和类正在传递一些大对象。如果我将仅在类中使用的所有属性都设置为普通变量,那么大部分内容都可以被剥离。
属性是否仅用于类之外需要的变量,然后在类本身内使用“正常”变量是否可以接受?
抱歉,如果这个问题说明对这个主题缺乏理解。不幸的是,这是我目前学习的地方。我已经围绕“类属性与变量”等进行了一些搜索,但没有找到对此的全面答案。
非常感谢
您问的内容有些含糊,但是如果valueToUseHere不在 之外使用doStuff,则不要将其作为属性!
class someClass {
public function doStuff() {
$valueToUseHere = 60;
// Do more stuff here...
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有理由与类的其他方法或与外部世界共享该值,那么就没有理由将您的对象与各种属性混在一起。这不仅会导致保留状态的棘手错误,还会迫使您在所有对象方法中对变量名不必要地小心。