Avatar billede kongfjong Nybegynder
21. januar 2005 - 16:09 Der er 6 kommentarer og
1 løsning

Problem med klasse

Hej;

Jeg har en fil, som jeg prøver lokalt at lege lidt med. Det er
fra en bog, hvor jeg bliver bedt om at oprette en klasse-fil,
hvorefter jeg skal bruge den klasse, og dens konstruktør.

Filen ser således ud (håber ikke det er for meget at læse
igennem):

<html>
<head>
<title>Listing 12.4 Using the date_pulldown Class</title>
</head>
<?php
class date_pulldown
var $name; <- LINJE 7
var $timestamp = -1;
var $months = array("Jan", "Feb", "Mar", "Maj", "Jun", "Jul",
"Aug", "Sep", "Okt", "Nov", "Dec");
var $yearstart = -1;
var $yearend = -1;

function date_pulldown($name)
{
$this->name = $name;
}

function setDate_global()
{
if (!$this->setDate_array($GLOBALS[$this->name]))
{
return $this->setDate_timestamp(time());
}

return true;
}

function setDate_timestamp($time)
{
$this->timestamp = $time;
return true;
}

function setDate_array($inputdate)
{
if (is_array($inputdate) && isset($inputdate['mon']) &&
isset($inputdate['mday']) && isset($inputdate['year']))
{
$this->timestamp = mktime(11, 59, 59, $inputdate['mon'],
$inputdate['mday'], $inputdate['year']);

return true;
}

return false;
}

function setYearStart($year)
{
$this->yearstart = $year;
}

function setYearEnd($year)
{
$this->yearend = $year;
}

function getYearStart ()
{
if ($this->yearstart < 0)
{
$nowarray = getdate(time());
$this->yearstart = $nowarray[year]-5;
}

return $this->yearstart;
}

function getYearEnd()
{
if ($this->yearend < 0)
{
$nowarray = getdate(time());
$this->yearend = $nowarray[year]+5;
}

return $this->yearend;
}

function output()
{
if ($this->timestamp < 0)
{
$this->setDate_global();
}

$datearray = getdate($this->timestamp);
$out = $this->day_select($this->name, $datearray);
$out .= $this->month_select($this->name, $datearray);
$out .= $this->year_select($this->name, $datearray);
return $out;
}

function day_select($fieldname, $datearray)
{
$out = "<select name=\"$fieldname"."[mday]\">\n";

for ($x=1; $x<=31; $x++)
{
$out .= "<option value=\"$x\"".($datearray['mday']==($x)
?" SELECTED":"").">"sprintf("%02d", $x ) ."\n";
}

$out .= "</select>\n";
return $out;
}

function month_select($fieldname, $datearray)
{
$out = "<select name=\"$fieldname"."[mon]\">\n;

for ($x = 1; $x <= 12; $x++)
{
$out .= "<option value=\"".($x)."\"".($datearray['mon']==($x) ?"
SELECTED":"")."> ".$this->months[$x-1]."\n";
}

$out .= "</select>\n";
return $out;
}

function year_select($fieldname, $datearray)
{
$out = "<select name=\"$fieldname"."[year]\">\n;
$start = $this->getYearStart();
$end = $this->getYearEnd();


for ($x = $start; $x <= $end; $x++)
{
$out .= "<option value=\"".($x)."\"".($datearray['year']==($x)
?" SELECTED":"").">$x\n";
}

$out .= "</select>\n";
return $out;
}

$date1 = new date_pulldown("fromdate");
$date2 = new date_pulldown("todate");
$date3 = new date_pulldown("foundingdate");
$date3->setYearStart(1972);

if (empty($foundingdate))
$date3->setDate_array(array('mday'=>26, 'mon'=>4,
'year'=>1984));
?>
<body>

<form>
From:<br><?php print $date1->output(); ?&gt;<p>

To:<br><?php print $date2->output(); ?&gt;<p>

Company founded:<br><?php print $date3->output(); ?&gt;<p>

<input type="submit" value="Submit Query">
</form></P>
</body>
</html>

Mit problem er, at når jeg kalder filen, før jeg følgende fejl:

Parse error: parse error, expecting `'{'' in D:\Apache
Group\Apache2\htdocs\listing12.4.php on line 7

Nogen der har en idé til hvad der kan være galt?
Avatar billede anykey Nybegynder
21. januar 2005 - 16:21 #1
der skal være { umiddelbart efter klasseerklæringen
Avatar billede anykey Nybegynder
21. januar 2005 - 16:22 #2
altså klassen skal være indeholdt i en blok af { og } ellers kan php jo ikke se, hvor klassen går fra og til
Avatar billede kongfjong Nybegynder
21. januar 2005 - 17:26 #3
Okay, tak:)

Når jeg har gjort det, får jeg følgende fejlmeddelelse:

Parse error: parse error in D:\Apache Group\Apache2\htdocs\listing12.4.php on line 112

Kodestykket er som følger:

function month_select($fieldname, $datearray)
{
    $out = "<select name=\"$fieldname"."[mon]\">\n;

    for ($x = 1; $x <= 12; $x++)
    {
        $out .= "<option value=\"".($x)."\"".($datearray['mon']==($x) ?" SELECTED":"")."> ".$this->months[$x-1]."\n"; <- LINJE 112
    }

    $out .= "</select>\n";
    return $out;
}
Avatar billede kongfjong Nybegynder
21. januar 2005 - 21:55 #4
Nå du får lige pointene, får det første spørgsmål:)
Avatar billede kongfjong Nybegynder
22. januar 2005 - 12:29 #5
smid lige et svar så du ka få dine point:)
Avatar billede kongfjong Nybegynder
21. marts 2005 - 22:43 #6
Lukket:)
Avatar billede kongfjong Nybegynder
21. marts 2005 - 22:43 #7
Prøver at lukke igen:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester