[转]类与PHP (II)

发表于:2007-07-01来源:作者:点击数: 标签:
Classes and PHP 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
Classes and PHP

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 oclearcase/" target="_blank" >ccur 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);

?>

原文转自:http://www.ltesting.net