Fra array til object - hvordan?
//Object både jeg senere opretter flere objekter afclass boat
{
//Her er vores variabler, som de står i vores klassediagram.
private $boat_id;
private $number;
private $name;
private $motor;
private $crewsize;
function __construct($boatid, $number, $name, $motor, $crewsize)
{
$this->boat_id = $boatid;
$this->number = $number;
$this->name = $name;
$this->motor = $motor;
$this->crewsize = $crewsize;
}
}
//Udtræks funktion fra database
public function getBoat()
{
$sql = "SELECT * FROM boat";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$tempBoat=new boat($row['boat_id'],$row['number'],$row['name'],$row['motor'],$row['crew_size']);
$Boats[]=$tempBoat;
}
return $Boats;
}
<?php
//Viser oversigt over samtlige både
if(!isset($_GET['boat_id']) && !isset($_GET['observation_id']))
{
echo "<table border='1' width='450'>
<tr>
<th colspan='5' align='center'>Både</th>
</tr>";
for($counter = 0; $counter <= count($boat_array); $counter += 1)
{
$boat = new broker_boat();
$boat_array[] = $boat->getBoat();
echo "<tr>
<td width='100' align='left'>Bådsnavn</td>
<td width='100' align='left'>".$boat_array[$counter]->getVar('name')."</td>
<td width='100' align='left'>Modelnr</td>
<td width='100' align='left'>".$boat_array[$counter]->getVar('number')."</td>
<td width='50' align='center'><a href='damagelogUI.php?boat_id=".$boat_array[$counter]->getVar('boat_id')."'>Se observationer</td>
</tr>";
}
}
?>
Problemet ligger i ovenstående udprintningsscript. Jeg kan ikke bruge metodekald fra det hentet boat objekt fra arrayet boat_array.
Betydende at kaldet $boat_array[$counter]->getVar('boat_id') laver en fatal error. "can´t call funktion on a non-objekt"
Jeg har søgt, jeg ved ikke hvor mange sider, igennem uden held. Nogen der har en løsning på hvorledes dette kan gøres.
Lige et sidste spørgsmål.
Classen boat som fremgår først i spørgsmålet. Hvis jeg ønsker at oprettet et nyt objekt af denne, men ikke gider at sætte noget i konstruktøren, er der så nogen smart måde at gøre det på?
Har tidligt se folk lave fx $boat = new boat; Men tvivler på det virker.
Håber nogen kan komme med nogen gode svar
På forhånd tak
Hilsen Daniel
