#native_company# #native_desc#
#native_cta#

PHP and Classes Page 2

By Rod Kreisler
on July 30, 2000

When you create a function within a class with the same name as the
class that function will execute whenever you create an object of that
class. This is called a ‘constructor.’ It allows me to have default
values for each attribute automatically whenever I create an object:

<?php $Basic = new Style?>

You define an instance of a class by giving it a name ($Basic) and
assigning it “=new ClassName;”.
You could also send different values for the variables as arguments when
declaring the new Style, but if you declare a value you have to declare
all of them that occur to the right of the one you declare (class
functions work just like regular functions in this respect). Meaning if
you set ‘text’ to something different than the default given in Style,
then you have to declare all the variables. There is an easier way. We
can create a function that changes a single variable within the class:

<?php

Function Set($varname,$value) {

        $this->$varname=$value;

}

?>



So to change the value of particular variable of an instance we can:

<?php $Basic->Set('size','2'); ?>

You use the “->” operator to refer to a variable or a function of an
instance. So the above tells the interpreter “Run function ‘Set()’ of
instance ‘$Basic’.” It knows that “$Basic” is an instance of class
“Styles” because we declared it so. Similarly we can refer to variables
of an instance in the same manner (e.g. $Basic->text).
Let’s create a Style for table headers that has some slightly different
attributes.

<?php

$Theader= new Style;

$Theader->Set('text','#0000FF');

$Theader->Set('bgcol','#000000');

?>



There, that’s good enough. Now my table header has blue text on a black
background. I want my table body to be a slightly lighter gray than my
main page, black is good for text, but maybe I’ll make the text smaller:

<?php

$Tbody=new Style;

$Tbody->Set('bgcol','#AAAAAA');

$Tbody->Set('size',2);

?>