Visibility of functions and properties is very important when you are
attempting to lock down certain aspects of an object. In PHP there are three
levels of visibility, public
, private
and protected
. Let’s take a look
at what each one means.
Public
Public is the easy one. It’s the default visibility and it means any and
everyone has access to it. If you come from Python land, it’s all you know
because Python doesn’t have anything else because “we’re all consenting
adults”.
I tend to agree with this sentiment because it gets very tiresome trying to
protect developers from themselves. Public visibility on properties in PHP
allows you to get and set variables without any getter or setter methods.
Definitely a win.
Protected
Protected properties and functions are accessible from the class itself as well
as any derived classes. This is great when you want to have classes inherit
from another class and you want shared access. Other objects would not have
access to these entities as if they were public.
Private
The most restrictive of the bunch, private properties and functions are only
accessible by the defining class itself. This is great when you only plan to
use the entity in the class itself and will not bt extending it at all. Pairs
well with the final
keyword.