[转]类与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 o
clearcase/" 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