Re: php 5 classes: public, protected and private



..oO(Tony Marston)

I disagree. it is *not* necessary for the simple reason that the code will
perform exactly the same function whether methods and properties are marked
as public/private/protected or not.

Then why do we use OOP and high-level languages like PHP at all? Pure
hand-written assembler code will perform exactly the same function.

It prevents developers from doing things that shouldn't be done, for
example calling an internal method out of context. I don't want all my
methods being publicly available, simply in order to avoid errors and
unpredictable results.

That is a matter for programmer discipline, it is not a matter of additional
functionality. The code will do exactly the same with or without it.

The code written in a language like Delphi for example will also do
exactly the same with all type checks, range checks, overflow checks
etc. turned off. But does it make sense to do that and just rely on
"programmer discipline"? No, it doesn't, because it will lead to
erroneous code on the long run.

Compilers are able to automatically check a lot of things and warn the
developer if he made a mistake. Such checks and restrictions don't add
any functionality, but are necessary in order to write reliable code.

The same goes for visibility declarations. I don't rely on discipline or
a comment like "please don't call this method". If a method is not meant
to be called directly then it's declared as such - problem solved.

Micha
.



Relevant Pages

  • Re: php 5 classes: public, protected and private
    ... Then why do we use OOP and high-level languages like PHP at all? ... That is a matter for programmer discipline, it is not a matter of additional functionality. ... The same goes for visibility declarations. ...
    (comp.lang.php)
  • Re: php 5 classes: public, protected and private
    ... Then why do we use OOP and high-level languages like PHP at all? ... That is a matter for programmer discipline, it is not a matter of ... So in your opinion Martin Fowler is of of these "people no one ever ... Are you saying that YOU are more of an expert than Martin Fowler? ...
    (comp.lang.php)