Why should I declare class properties (variables) or methods (functions) using the keyword public
, if they're public by default? Or, are they?
To phrase my question differently, is public
redundant? I understand private
and protected
, but why declare public
if class members are public anyway?
Yes, public
is the default (see visibility docs).
People add it, so it is consistent with all the other methods / properties.
Furthermore, if you want to declare a property public and don't want to use public
you will need to use var
, which is not recommended and will likely be deprecated at some point.
As of php 5.3 (I think, its been a while), using the var keyword raises E_STRICT errors, so public has to be used to declare object vaiables. As for functions, I believe it is more of a consistency thing.
Sure it is redundant since that is the default visibility level. You should avoid them when you can. Some people add the public
keyword explicitly so that code is little more readable.
There is no technical reason to use public
however a visibility keyword is required by PSR-2 on all functions so if you want to follow PSR-2 then you should use it:
4.3. Methods
Visibility MUST be declared on all methods.
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#43-methods