<?php
interface Kiirhato
{
public function kiir();
}
abstract class Felhasznalo implements Kiirhato {
protected static $felhasznalok_szama = 0;
private $nev;
private $cim;
private $kod;
private $jelszo;
private $szuletesi_ev;
function __construct($nev, $cim, $kod, $jelszo, $szuletesi_ev) {
$this->nev = $nev;
$this->cim = $cim;
$this->kod = $kod;
$this->jelszo = $jelszo;
$this->szuletesi_ev = $szuletesi_ev;
self::$felhasznalok_szama++;
}
function kiir() {
print_r(self::adatok());
}
function felhasznalok() {
return self::$felhasznalok_szama;
}
function adatok() {
return array(
"nev" => $this->nev,
"cim" => $this->cim,
"kod" => $this->kod,
"jelszo" => $this->jelszo,
"szuletesi_ev" => $this->szuletesi_ev
);
}
function kor() {
$ts = strtotime($this->szuletes_datum);
if($ts === -1) {
return "Ismeretlen";
}
else {
return date("Y", time() - $ts) - 1970;
}
}
function __clone() {
self::$felhasznalok_szama++;
}
}
class Hallgato extends Felhasznalo {
private static $hallgatok_szama = 0;
private $szak;
private $jegyek = array();
function __construct($nev, $cim, $kod, $jelszo, $szuletesi_ev, $szak) {
parent::__construct($nev, $cim, $kod, $jelszo, $szuletesi_ev);
$this->szak = $szak;
self::$hallgatok_szama++;
}
function hallgatok() {
return self::$hallgatok_szama;
}
function kiir() {
print_r(self::adatok());
}
function adatok() {
return array_merge(parent::adatok(), array(
"szak" => $this->szak,
"jegyek" => $this->jegyek));
}
function jegybeir($jegy) {
if(count($this->jegyek) == 5) {
return false;
}else {
$this->jegyek[] = $jegy;
return true;
}
}
function __clone() {
self::$hallgatok_szama++;
}
}
class Dolgozo extends Felhasznalo {
private static $dolgozok_szama = 0;
private $ber;
function __construct($nev, $cim, $kod, $jelszo, $szuletesi_ev, $ber) {
parent::__construct($nev, $cim, $kod, $jelszo, $szuletesi_ev);
$this->ber = $ber;
self::$dolgozok_szama++;
}
function dolgozok() {
return self::$dolgozok_szama;
}
function kiir() {
print_r(self::adatok());
}
function adatok() {
return array_merge(parent::adatok(), array(
"ber" => $this->ber));
}
function beremeles($emeles) {
if (($this->ber + $emeles) < 0) {
return false;
} else {
$this->ber += $emeles;
return true;
}
}
function __clone() {
self::$dolgozok_szama++;
}
}
?>