Repository navigation
Expand file tree
/
Copy pathinterface.php
More file actions
106 lines (88 loc) · 1.66 KB
/
Copy pathinterface.php
File metadata and controls
106 lines (88 loc) · 1.66 KB
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
104
105
106
<?php
/**
*=============================================================
* <interface.php>
* Object Oriented Programming in PHP: Interfaces
*
* @Author Muhammad Anwar Hussain<anwar_hussain.01@yahoo.com>
* Created on: 15th July 2019
* ============================================================
*/
interface Services
{
public function service_X();
public function service_Y();
public function service_Z();
}
class Train implements Services
{
public function service_X()
{
echo __METHOD__ . '<br>';
}
public function service_Y()
{
echo __METHOD__ . '<br>';
}
public function service_Z()
{
echo __METHOD__ . '<br>';
}
}
class Ship implements Services
{
public function service_X()
{
echo __METHOD__ . '<br>';
}
public function service_Y()
{
echo __METHOD__ . '<br>';
}
public function service_Z()
{
echo __METHOD__ . '<br>';
}
}
class Plane implements Services
{
public function service_X()
{
echo __METHOD__ . '<br>';
}
public function service_Y()
{
echo __METHOD__ . '<br>';
}
public function service_Z()
{
echo __METHOD__ . '<br>';
}
}
class Transport
{
protected $transport;
function setTransport(Services $s = null)
{
$this->transport = $s;
}
public function getService($serviceName)
{
$this->transport->$serviceName();
}
public function getServicePackage()
{
$this->transport->service_X();
$this->transport->service_Y();
$this->transport->service_Z();
}
}
$transport = new Transport();
$vehicles = ['t' => new Train, 's' => new Ship, 'p' => new Plane];
while($element = each($vehicles))
{
$transport->setTransport($element['value']);
$transport->getServicePackage();
echo '<br>';
}
?>