With simple examples, such as that given by Mojo, it would probably be
better to use a normal function. However, once you start getting much more
complex objects, and (possibly) many of them, it's easier to model them
using classes, and not just functions.

One reason to use classes is to abstract the data structure from the caller,
similar to functions abstacting the process from the caller.

eg. I've written a "dataset" class that is basically a two-dimensional
array, but I've added accessor methods that allow (just to name a few):
adding a new row, sorting, pulling back a row by index, pulling data back by
name. It has an internal pointer to the current row so that you can
"rewind", "movenext", etc.

Now think about the last part of this example. To maintain a pointer of
where you are in one of several datasets, you'd need to have a lot of
variables floating around the place that could get over written, misused,
etc. Encapsulating this pointer, and the array, in a class ensures that, if
the class is used properly (ie. no accessing of variables directly, only
through the accessor methods) then there's no need to worry about the
validity of that pointer.

This is but one, more complex, example. There are many more - eg. database,
email, xml - all of which can more easily be represented as objects.

Hope that sways some people into thinking that classes are worth while. I do
agree that there are times functions are better - one must analyse each
problem to determine which is better to use.

Martin


-----Original Message-----
From: Demitrious S. Kelly [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, March 06, 2002 7:31 AM
To: 'mojo jojo'; [EMAIL PROTECTED]
Subject: RE: [PHP] OOP .. I just don't get it.


I've often wondered the same thing... which is why I've never moved to
OOP

So I'm patiently waiting for a reply to this message as well :)

-----Original Message-----
From: mojo jojo [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, March 05, 2002 12:22 PM
To: [EMAIL PROTECTED]
Subject: [PHP] OOP .. I just don't get it.

Hi

I've been using php for a while now but I have not got my head around
OOP
(classes).

Why bother using them? I've read thru a few tutorials on using classes
and
the examples given are quite simple. This is probably the problem - I
just
can't see the benefit of using this style of programming.

Here is what I'm getting  at.

------------USING A CLASS-----------------
class Table {

    var $rows;
    var $columns;

    function MakeTable() {

        draw a table with $this->columns as the number of columns
        and $this->rows as the number of rows

    }
}

$mytable = new Table;
$mytable->rows = 5;
$mytable->columns = 10;
$mytable->MakeTable();

---------------USING A NORMAL FUNCTION-----

function MakeTable($rows,$columns) {

    make a table with $rows as the number of rows
    and $columns as the number of columns

}

$rows = 5;
$columns = 10;
MakeTable($rows,$columns);

-----------------------------------------------------------

Using a class doesn't appear to give me any benefits - in fact the code
is
longer.

I know that you can spawn more instances of the same class which sounds
useful, however I can also run my function as many times as I like using
different variables.

What am I missing here?

Thanks

Mojo



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



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

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

Reply via email to