Objects, property visibility, and trade-offs     Procedural
think  Those coming from a procedural background, I find, tend
to think in terms of what is possible in a procedural language.
Any procedural language has a concept of a variable (duh), and
any procedural language worth using has some way of creating
more complex data structures to be used as variables. In C there
is the concept of a Struct, for instance. In PHP one can largely
emulate the same structure (no pun intended) using PHP's
ridiculously flexible arrays and good documentation.  In either
case, what one is doing is simply clustering variables together
to make them easier to work with. To actually operate on that
variable cluster requires a function that understands that
structure.  To be sure, one can do an incredible amount with
such an approach. In a past life I was a Palm OS developer, and
the Palm OS API was entirely procedural. Most functions took
some sort of struct as their first parameter and would
manipulate that struct in some way.