Я новичок в мире PHP и изучаю его php.net. Я знаю, что при приведении объекта к массиву нулевой байт добавляется вокруг имен закрытых и защищенных свойств, когда ИмяКласса или же звездочка (*) добавляется к частным и защищенным именам свойств в ключах массива.
Но мой вопрос в том, что ЗАЧЕМ php добавить нулевые байты КАКИЕ это причина?
Может ли кто-нибудь сказать простыми и легкими словами.
Примеры очень помогут.
Спасибо
Точка private
/protected
Свойства в том, что вы не должны обращаться к ним извне самого класса. Это не мера безопасности или что-то в этом роде, а обеспечение соблюдения контрактов между различными частями вашего кода. Когда вы отмечаете что-то как private
/protected
Вы явно заявляете, что эта вещь не предназначена для общего публичного потребления, и с ней не должен быть связан внешний код.
Это в основном напоминание для вас и других разработчиков и в худшем случае даст вам легкую пощечину, если вы не повиноваетесь этому маркеру; это не железная защита любыми средствами. Есть несколько способов обойти это, например используя отражение. Но, если это было сделано слишком легко чтобы получить доступ к этим частным частям, разработчики, вероятно, будут делать это влево и вправо и отрицать всю суть.
Так как эти свойства включаются в массив при приведении объекта к массиву, по крайней мере, не сразу понятно, как получить к ним доступ напрямую из-за добавления NUL
байт. Если вы потратите время, чтобы выяснить, как получить к ним доступ, вы, надеюсь, действительно знаете, что делаете.
TL; DR: (я полагаю) это минимальная попытка применить некоторые минимальные стандарты кодирования и не позволить новичкам нарушать все принципы ООП, когда они выяснят, что такое приведение массива.
Других решений пока нет …