Hej allesammen!
Jeg er gået lidt ned i OOP når det gælder PHP.
Jeg er dog rendt ind i et problem: min kode virker ikke..
Kan virkelig ikke spotte fejlen, men håber en af jer måske kan..
Kode:
<?php
class Garage
{
var $carNames = array();
var $carYears = array();
var $carEngines = array();
var $errors = array();
// Konstruktør
function Garage($newName = "", $newYear = "", $newEngine = "")
{
if(empty($newName) || empty($newYear) || empty($newEngine))
return;
else
{
$this->carNames[] = $newName;
$this->carYears[] = $newYear;
$this->carEngines[] = $newEngine;
}
}
function addCar($carName, $carYear, $carEngine)
{
$this->carNames[] = $carName;
$this->carYears[] = $carYear;
$this->carEngines[] = $carEngine;
}
function getCars($options = 1)
{
switch($options)
{
case 1:
return array("allNames" => $this->carNames, "allYears" => $this->carYears, "allEngines" => $this->carEngines);
break;
case 2:
return $this->carNames;
break;
case 3:
return $this->carYears;
break;
case 4:
return $this->carEngines;
break;
default:
$this->errors[] = "options can't be: " . $options;
return array("allNames" => $this->carNames, "allYears" => $this->carYears, "allEngines" => $this->carEngines);
break;
}
}
function getErrors($lastError = false)
{
if($lastError == false)
return $this->errors[];
elseif($lastError == true)
{
$errorCount = count($this->errors);
return $this->errors[$errorCount-1];
}
else
{
$this->errors[] = "lastError is a boolean, i can't be: " . $lastError;
return $this->errors[];
}
}
function deleteCar($carNumber, $emptyGarage = false)
{
if($emptyGarage == false)
{
if(empty($carNumber))
{
$this->errors[] = "No identifier was given";
return;
}
else
{
if(empty($this->carNames[$carNumber]) || empty($this->carEngines[$carNumber]) || empty($this->carYears[$carNumber]))
{
$this->errors[] = "No car with such data is in the garage";
return;
}
else
{
unset($this->carNames[$carNumber], $this->carEngines[$carNumber], $this->carYears[$carNumber]);
return;
}
}
}
elseif($emptyGarage == true)
{
unset($this->carNames, $this->carEngines, $this->carYears);
return;
}
else
{
$this->errors[] = "Second parameter is a boolean, it can't hold: " . $emptyGarage;
return;
}
}
}
$garage = new Garage("BMW Z Serie Z4","2005","231");
$allcars = $garage->getCars();
echo count($allcars["allNames"]);
?>
Ved godt at det er en større samling, men det er fordi jeg virkelig har prøvet at skrive den flotteste syntax jeg har prøvet...
Vil egentlig også gerne have noget feedback på min opbygning af klassen, og lidt om min syntax.
Håber i kan hjælpe!
~Jakob
Indlæg senest redigeret d. 17.05.2008 00:01 af Bruger #11328