-
Notifications
You must be signed in to change notification settings - Fork 5
/
ShapeClass.php
103 lines (87 loc) · 1.66 KB
/
ShapeClass.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<html>
<head>
<title>The Shape of Things to Come</title>
</head>
<body>
<?php
class Shape
{
public $has_sides = true;
public $num_of_sides;
public $name;
}
class Triangle extends Shape{
function __construct(){
$this->name = 'Triangle';
$this->num_of_sides = 3;
}
}
class Square extends Shape{
function __construct(){
$this->name = 'Square';
$this->num_of_sides = 4;
}
}
class Pentagon extends Shape{
function __construct(){
$this->name = 'Pentagon';
$this->num_of_sides = 5;
}
}
class Hexagon extends Shape{
function __construct(){
$this->name = 'Hexagon';
$this->num_of_sides = '6';
}
}
class Heptagon extends Shape{
function __construct(){
$this->name = 'Heptagon';
$this->num_of_sides = 7;
}
}
class Octagon extends Shape{
function __construct()
{
$this->name = 'Octagon';
$this->num_of_sides = 8;
}
}
class Nonagon extends Shape{
function __construct(){
$this->name = 'Nonagon';
$this->num_of_sides = 9;
}
}
class Decagon extends Shape{
function __construct(){
$this->name = 'Decagon';
$this->num_of_sides = 10;
}
}
function Test($obj){
if ( property_exists($obj,"has_sides") ){
echo "<p>A $obj->name has $obj->num_of_sides sides!</p>" . PHP_EOL;
}
}
// Instantiate for testing
$triangle = new Triangle();
$square = new Square();
$pentagon = new Pentagon();
$hexagon = new Hexagon();
$heptagon = new Heptagon();
$octagon = new Octagon();
$nonagon = new Nonagon();
$decagon = new Decagon();
// Run Tests
Test($triangle);
Test($square);
Test($pentagon);
Test($hexagon);
Test($heptagon);
Test($octagon);
Test($nonagon);
Test($decagon);
?>
</body>
</html>