View Single Post

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

Tony Marston wrote:
> "Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
> news:Ib6dna_BtYQSifbYnZ2dnUVZ_sSdnZ2d@comcast.com. ..
>
>>jopperdepopper wrote:
>>
>>>>You should read "can be accessed everywhere".
>>>>
>>>>Private members can be accessed by members of the class only.
>>>>Protected members can be accessed by members of the class or a derived
>>>>class.
>>>>Public members can be accessed by anyone, including other classes,
>>>>functions and any other code.
>>>
>>>
>>>
>>>Thanks Jerry. I'm trying to make a bit of sense of the php 5 approach
>>>to classes, and so far having a hard time. I fail to see the 'why'
>>>behind the 'public, protected and private' and stuff like abstraction,
>>>interfaces and whatnot.

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


Ah, the great Tony Marston is back to trolling again.

Wrong. In OO terms, the interface is the way to interact with the
object. It consists of all public members - both methods (functions, in
PHP) and variables. And for derived classes, the base class adds
protected members.

A PHP interface is something entirely different.

>
>>>Feels like things are being over-complicated
>>>somehow... or it's just my being inexperienced on this...
>>>
>>>Any other reading material on this suggested, someone?
>>>

>>
>>Look for some good books on OO theory and design.
>>
>>Two of the concepts in OO are 'encapsulation' and 'methods'.
>>
>>Encapsulation means the internals of an object are managed only by that
>>object and are not available to anyone else. In PHP these are private
>>members.

>
>
> 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. It
> does not add any functionality, it merely creates restrictions which often
> get in the way.
>


Wrong again, Tony. Encapsulation means internal representations of the
object are not visible outside of the class. Just like the base &
mantissa are not visible outside of a floating point number.

>
>>Methods are implemented as functions in PHP. They operate on the object.

>
>
> That's one thing you got right.
>


More than you got right. Go crawl back into your hole and don't come
out again until you know what you're talking about.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Reply With Quote