<?php
interface GoAlgorithm
{
public function go();
}
class GoByDrivingAlgorithm implements GoAlgorithm
{
public function go()
{
echo("Now I'm driving.");
}
}
class GoByFlying implements GoAlgorithm
{
public function go()
{
echo("Now I'm flying.");
}
}
class GoByFlyingFast implements GoAlgorithm
{
public function go()
{
echo("Now I'm flying fast");
}
}
abstract class Vehicle
{
private $goAlgorithm;
public static function setGoAlgorithm($goAlgorithm = TRUE)
{
return $goAlgorithm = 'GoAlgorithm';
}
}
class StreetRacer extends Vehicle
{
public function StreetRacer($goAlgorithm=TRUE)
{
Vehicle::setGoAlgorithm($str=new GoByDrivingAlgorithm(), $str->go());
}
}
class FormulaOne extends Vehicle
{
public function FormulaOne()
{
Vehicle::setGoAlgorithm($for=new GoByDrivingAlgorithm(), $for->go());
}
}
class Helicopter extends Vehicle
{
public function Helicopter()
{
Vehicle::setGoAlgorithm($hel=new GoByFlying(), $hel->go());
}
}
class Jet extends Vehicle
{
public function Jet()
{
Vehicle::setGoAlgorithm($jet=new GoByFlyingFast(), $jet->go());
}
}
class StartTheRace
{
public static function main()
{
$streetRacer = new StreetRacer();
$formulaone = new FormulaOne();
$helicopter = new Helicopter();
$jets = new Jet();
}
}
//StartTheRace::main();
class RealJet //dodatak na klase bez extends ali ako idu na druge stranice onda treba autoload require_one
{//potreba ka drugog lokaciji app, mogla bi da bude i sa require interface.php
public static function main()
{
//samo poziv objekta koji poziva njegovu funkciju
$jet = new StreetRacer();
$jet = new Helicopter();
$jet = new StreetRacer();
}
}
RealJet::main();
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; StreetRacer has a deprecated constructor in /in/FAgju on line 44
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; FormulaOne has a deprecated constructor in /in/FAgju on line 52
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Helicopter has a deprecated constructor in /in/FAgju on line 60
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Jet has a deprecated constructor in /in/FAgju on line 68
Now I'm driving.Now I'm flying.Now I'm driving.