gpt4 book ai didi

php - 为什么不能访问一个类的属性,但是可以访问同一个类的方法?

转载 作者:行者123 更新时间:2023-12-05 08:58:59 25 4
gpt4 key购买 nike

我是 PHP 的新手,每当我阅读优秀实践,尤其是与 OOP 相关的内容时,我经常会看到诸如“不要将局部变量暴露给全局空间,使用 getter 方法或检索方法”。

我理解为什么我们不想污染全局命名空间,但在什么时候调用 getter 方法只是为了访问一个简单的属性变得荒谬了?我认为这显示了巨大的虚伪。我们愿意在类定义之外公开和调用方法,而不是简单的变量?为什么是这样?方法不是更复杂吗?

如果我的困惑放错了地方,请原谅我。我真的很想了解 OOP 最佳实践。

最佳答案

使用 getter 和 setter 访问对象属性始终是最佳实践,因为它们隐藏了有关您如何存储和获取特定值的信息

基本上,您提供一个接口(interface)(不会改变)以通过隐藏逻辑(可能会改变)访问信息。

一个愚蠢的例子可能是返回计算值的 getTotal 方法。您可以有一个像这样的简单 getter,它只返回先前计算的总数:

function getTotal()
{
return $privateTotal;
}

或者你可以在你的 getter 中计算总数:

function getTotal()
{
return $sub1 + $sub2 + $sub3;
}

您可以随时更改实现。客户端将不会意识到您的逻辑发生了变化。

关于php - 为什么不能访问一个类的属性,但是可以访问同一个类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com