Shawn: I beleive I can clarify the purpose of objects/classes for you and enrich my clarification with a couple of examples.
THE DIFFERENCE BETWEEN "OBJECT" AND "CLASS": A class defines the structure of an object. A class is a "template" for an object. An object is a container for data and for functions that operate on that data. A class is a roadmap -- it defines the object's structure. You can then create several objects using one class. These several objects are separate from one another, but identical in structure. Each can contain different data but use the same functions to operate on that data. Functions contained within an object class are called methods. Functionally, methods are exactly the same as functions except that they are restricted to the scope of the object. Generally, a method is a function that operates on the object's data. An object contains variable data including variables, arrays and objects. These variables are called the object's properties. WHEN TO USE OBJECTS: Objects could be used when you have several similar pieces of data especially when you wish to have that data manipulated by the same functions but wish to maintain separation between these data objects. EXAMPLE: Let's say, for example, that you wished to store information about a number of different people within a single script execution. An insurance site might wish to gather information about the primary applicant, his wife and their three children all on the same page. You and I would agree that all people have similar properties; we all have an age, a height, a weight - we might smoke etc. Therefore, a class for people could be defined. class Human { var $age; var $height_inches; var $weight_pounds; var $smoker; function HeightWeightRatio() { $ratio = $this->height_inches / $this->weight_pounds; return $ratio; } } } } To create an instances of the class (an object) you would use something like this: $father = new Human; $mother = new Human; Once you have instantiated the class (previous lines) you could then set the values of the object with code like: $father->age = 49; $father->height = "5'11"; $father->weight = 215; $father->smoker = false; $father_ratio = $father->HeightWeightRatio(); $mother->age = 47; $mother->height = "5'5"; $mother->weight = 145; $mother->smoker = true; $mother_ratio = $mother->HeightWeightRatio(); By now, I'm sure you get the picture. THE MOST USEFUL EXAMPLE FOR ME THUS FAR: class HTMLTemplate { var $template; var $html; var $parameters = array(); var $populated = false; function HTMLTemplate ( $template) { $this->template = $template; $this->html = implode ("", (file($this->template))); } function SetParameter ( $variable, $value) { $this->parameters[$variable] = $value; } function PopulateValues () { foreach ($this->parameters as $key => $value) { $template_name = '<!--{' . $key . '}-- >'; $this->html = str_replace ($template_name, $value, $this->html); } $this->populated = true; } function ReturnHTML () { if ( $this->populated) { return $this->html; } else { $this->PopulateValues(); return $this->html; } } } This class allows you to use an html template file which you can paste dynamic values/content into. Here's an example of how to use it: <?php $title = "My Web Page"; $content = "Hello, this is my web page."; $template = new HTMLTemplate("/mytemplate.html"); $template->setParameter("PAGE-TITLE", $title); $template->setParameter("CONTENT", $content); echo $template->ReturnHTML(); // Sends html to the browser // It is important to destroy an object once you are finished // using it so that you can free up the memory space that it uses unset($template); // Destroys instance of object ?> HTML TEMPLATE FILE: My html template file might look like this: <html> <head> <title><!--{PAGE-TITLE}--></title> </head> <body> <!--{CONTENT}--> </body> </html> Christopher Raymond, Oasis Networks <-- Web Development & Macintosh Systems Consulting -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php