Apr 19 at 3:46pm, Chris W. Parker wrote:
> Kelly Hallman <mailto:[EMAIL PROTECTED]>
> > I think what you're talking about here is encapsulation.
> 
> in that case what is abstraction?

I suppose it's pretty similar, but I believe that encapsulation is the
pedantic term for hiding the data structure behind an object's interface.  
I generally would consider something abstraction when it enables you to
access any number of things from a common interface, such as a database
abstraction layer is an API to interfacing to different RDBMS.

> >> PROPOSED CHANGE:
> >> class Customer {
> >>    ...
> >>    function initialize_customer($customer_id) {
> >>        // grab data from db
> >>        $this->fname = $...[0]['fname'];
> >>        $this->lname = $...[0]['lname'];
> >>        $this->age   = $...[0]['age'];    }
> 
> i see my code has been run through the kellytron 5000. ;)

Dude, it just kills me to not compact the code, at least in a list post ;)
Python! Python did it to me!

> > class Customer {
> > 
> >     var $res = array();
> 
> what does $res stand for? result?

Yeah. Generally, I like compact! :) However, I am consistent throughout my 
code, so it makes sense if you spend enough time there....! :)

> >     var $id, $fname, $lname;
> > 
> >     function Customer($id=null) {
> >         $id === null || $this->initCustomer($id); }
> 
> what is the above line equivalent to

Equivalent to:
if ($id !== null) { $this->initCustomer($id); }

The conditional:
if ($id === null) { $this->initCustomer($id); }
could also be written as:
$id === null && $this->initCustomer($id);

I just find that more succinct.

> and why is '$id == null' not sufficient?

Because where $id = 0;
($id ==  null) == true;
due to casting, yet
($id === null) == false;

=== is explicit equality, the operands must also be the same type.
also note that !== vs. != is like === vs. ==

for example:
null == 0 == false == array() == ''
where === would cause all to evaluate false

Doesn't mean it'd be insufficient, but it would allow you to pass a zero
to the method, and differentiate between it and the default value of null.

-- 
Kelly Hallman

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to