Contributed by Chris Rathman
<HTML> <HEAD> <TITLE>PHP Test</TITLE> <?PHP class Shape { var $x; var $y; // constructor function Shape($initx, $inity) { $this->moveTo($initx, $inity); } // accessors for x & y coordinates function getX() { return $this->x; } function getY() { return $this->y; } function setX($newx) { $this->x = $newx; } function setY($newy) { $this->y = $newy; } // modify the shape coordinates function moveTo($newx, $newy) { $this->setX($newx); $this->setY($newy); } function rMoveTo($deltax, $deltay) { $this->moveTo(($this->getX() + $deltax), ($this->getY() + $deltay)); } // abstract method to override function draw() { } } class Rectangle extends Shape { var $width; var $height; // constructor function Rectangle($initx, $inity, $initwidth, $initheight) { $this->Shape($initx, $inity); $this->setWidth($initwidth); $this->setHeight($initheight); } // accessors for width & height attributes function getWidth() { return $this->width; } function getHeight() { return $this->height; } function setWidth($newwidth) { $this->width = $newwidth; } function setHeight($newheight) { $this->height = $newheight; } // draw the rectangle function draw() { echo "Drawing a Rectangle at:(" . $this->getX() . "," . $this->getY() . "), width " . $this->getWidth() . ", height " . $this->getHeight() . "<BR>"; } } class Circle extends Shape { var $radius; // constructor function Circle($initx, $inity, $initradius) { $this->Shape($initx, $inity); $this->setRadius($initradius); } // accessors for radius attribute function getRadius() { return $this->radius; } function setRadius($newradius) { $this->radius = $newradius; } // draw the circle function draw() { echo "Drawing a Circle at:(" . $this->getX() . "," . $this->getY() . "), radius " . $this->getRadius() ."<BR>"; } } ?> </HEAD> <BODY> <?PHP // set up an array with some shape instances $scribble = array(new Rectangle(10, 20, 5, 6), new Circle(15, 25, 8)); // iterate through the shapes for ($i = 0; $i < 2; $i++) { $scribble[$i]->draw(); $scribble[$i]->rMoveTo(100, 100); $scribble[$i]->draw(); } // access a rectangle specific function $arectangle = new Rectangle(0, 0, 15, 15); $arectangle->setWidth(30); $arectangle->draw(); ?> </BODY> </HTML> |