View Single Post

  #10 (permalink)  
Old 11-28-2006
Tony Marston
 
Posts: n/a
Default Re: php 5 classes: public, protected and private


"Michael Fesser" <netizen@gmx.de> wrote in message
news:fdvmm2hngste2mc3v3q50g23ggkra6u2js@4ax.com...
> .oO(Tony Marston)
>
>>Intefaces are not necessary in PHP. Once you have defined a method it is a
>>total waste to time to also define an interface. Interfaces are a "fix" in
>>those languages as a means of dealing with optional arguments and statyic
>>typing. PHP has ifferent ways of dealing with bth of these, therefore
>>interfaces serve no useful purpose.

>
> What's called an interface in PHP is a completely different mechanism
> than what you described above.


I disagree. It is possible to define a function (method) within a class,
then to define a separate thng called an "interface". It is possible access
he function without using the interface, therefore the inteface is not
necessary.

>>Wrong. Encapsulation means that the data and the functions which operate
>>on
>>that data are contained (encapsulated) within a single object. While the
>>methods (functions) thenselves may be visible the code behind those
>>methods
>>(i.e. the implementaton behind those methods) is not. Encapslation is NOT
>>about hiding information, it is about hiding the implementation. It is not
>>necessary to use public/private/protected on any methods or properties.

>
> Of course it is necessary.


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.

>>It
>>does not add any functionality, it merely creates restrictions which often
>>get in the way.


That is why I said "It does not add any functionality, it merely creates
restrictions"

> 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.

--
Tony Marston
http://www.tonymarston.net
http://www.radicore.org


Reply With Quote