gpt4 book ai didi

PHP - 公开可见性是否不太安全?

转载 作者:行者123 更新时间:2023-12-04 22:10:38 24 4
gpt4 key购买 nike

我曾经问过一位老师,为什么她总是将属性可见性设置为私有(private)或 protected 。她回答我说这比公开它更安全,但我对这个答案并不是很有信心。所以,我想知道,即使我确保最终用户不会有任何方式来操纵我的类,公共(public)属性对于属性来说真的不那么安全吗?为什么?

最佳答案

不,那绝对是垃圾。它的安全性不高不低。

如果用户愿意,他们可以访问对象的 protected /私有(private)属性:

class Car {
protected $engine = 'V8';
}

$reflector = new ReflectionClass('Car');
$engineProperty = $reflector->getProperty('engine');
$engineProperty->setAccessible(true);

$maserati = new Car;
echo $engineProperty->getValue($maserati); // echoes "V8"
$engineProperty->setValue($maserati, 'I4');
echo $engineProperty->getValue($maserati); // echoes "I4"

因此,很明显,没有安全优势。

这样做的好处是,它可以通过标记该类是为他们设计的可以与之交互的功能和属性来帮助最终用户。如果开发人员愿意,他们可以完全改变类的内部结构,但调用它的代码不必改变。如果他们真的想要,类的用户可以随意处理它,但如果事情不起作用,那就是他们的问题了!

关于PHP - 公开可见性是否不太安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40811629/

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