我是 PHP 世界的新手,并从中学习php.net http://php.net/。我知道,当将对象转换为数组时,会在私有和受保护的属性名称周围添加空字节班级名称 or 星号键 (*)附加在数组键中私有和受保护的属性名称之前。
但我的问题是WHYphp 添加空字节WHAT是什么原因?
谁能用简单易懂的话来讲述。
例子会有很大帮助。
Thanks
要点是private
/protected
属性的缺点是您不应该从类本身的外部访问它们。这不是一种安全措施或类似的措施,而是在不同代码片段之间强制执行合同。当您将某物标记为private
/protected
,您明确声明此东西不适合一般公众消费,并且不应将任何外部代码与其耦合。
这主要是对您自己和其他开发人员的提醒,如果您不遵守该标记,最坏的情况是会给您轻微的惩罚;无论如何,这都不是铁定的保护。有很多方法可以解决这个问题,例如使用反射。But,如果它被制成too easy为了访问这些私有部分,开发人员可能会左右移动并否定整个要点。
由于在将对象转换为数组时这些属性包含在数组中,因此至少由于添加了附加属性,如何直接访问它们并不是立即显而易见的NUL
字节。如果您花时间弄清楚如何访问它们,您希望真正知道自己在做什么。
TL;DR:(我相信)这是尝试强制执行一些最低编码标准的最低限度尝试,并且一旦新手弄清楚什么是数组转换,就不会让他们违反所有 OOP 原则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)