Ik snap eigenlijk niets van wat je in stop() probeert te doen.
Leg zelf eens uit wat je probeert te doen.
Kijk even
<?php
public function stop()
{
$this->stopTime = microtime('now');
$timeview = $this->lap(); // lap() heeft geen return, dus $timeview zal gewoon null zijn.
$this->isRunning = false;
$timeview->startTime - $stopTime; //$timeview is null en heeft dus geen ->startTime. // En $stopTime bestaat niet
}
?
Ik probeer een class te maken voor een stopwatch. Nu wil ik als er op stop gedrukt is dat de tijd word uitgerekend. Dus je rekent uit de begintijd - de eindtijd en die geef je weer in seconden, uren en minuten
Eerst moet je basisbegrippen leren kennen.
Vooraleer je die kent, is het niet zinnig om te proberen iets echt te realiseren.
De betekenis van dit:
$timeview = $this->lap();
Dit betekent dat de functie lap() een return heeft. Die return wordt de nieuwe waarde van $timeview.
Maar, merk samen met ons op dat lap() geen return heeft.
Dus: waarom schrijf je dat? Dit lijkt ons onzinnig.
Dat soort dingen moet je echt goed snappen vooraleer je steeds grotere stukken code gaat schrijven.
En begin bij de beginners-tutorials.
"PHP Beginnershandleiding", daarna "OOP Beginnershandleiding (PHP5)".
Zorg dat je de principes goed door hebt.
Dit doe je door kleine oefeningen te maken; niet door direct aan een groot project te beginnen.
De principes moeten zo evident worden dat ze automatische reflexen worden.
Niets persoonlijk. Ik raad precies het zelfde aan, bij iedereen waarbij ik het gevoel heb dat ze te grote projecten willen realiseren vooraleer ze de onderdelen goed begrijpen.
Het is me nu gelukt wat ik wilde maken.
Alleen nu wil ik controleren wat de timestate is. Zoals je onder in mijn script kan zien heb ik 2x het if statement geplaatst. Ik wil dus dat hij de timer opnieuw start ipv dat hij doorgaat.
[code]
<?php
interface IStopwatch
{
public function start();
public function stop();
public function lap();