PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Objekt fehlerhaft


wyho
15.06.2009, 13:35:57
Hi!

Ich versuche mich gerade an der Erstellung von Objekten.

Das Ziel ist es, einen kleinen Kalender zu bauen.

Ich bekomme aber eine Fehlermeldung, die mich stutzen lässt.
Parse error: syntax error, unexpected '(', expecting ',' or ';' in C:\xampp\htdocs\my-share.info\neweara\cal.php on line 14
Kann man die date()-Funktion nicht in einem Objekt nutzen?
Oder gehe ich einfach falsch an die Objekterstellung heran?

Hier mein Script:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php


// Klasse : Aktuelles Datum (CurDate)
class CurDate
{

// Kalender-Sprachvariablen
public $days = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag', 'Samstag');
public $months = array('Januar','Februar','Mai','Juni','Juli','August','September','Okt ober','November','Dezember');

// Kalender-Werte
14: public $monthtrial = date(n)-1;
public $monthname = $months[$monthrial];
public $monthfull = date(m);
public $daytrial = date(j);
public $dayname = $days[$daytrial];
public $dayfull = date(d);
public $wnumber = date(W);
public $wday = date(w);
public $year = date(Y);

// Datumsaufruf (CallDate)
public function CallDate()
{
echo "Datumsausgabe<br /><br />";
echo "Aktueller Monat: ".$this->monthname."<br />";
echo "Aktueller Tag: ".$this->dayname."<br />";
echo "Aktuelles Jahr: ".$this->wnumber;
}
}
$showdate = new CurDate();
$showdate->CallDate();

?>

Indyk
15.06.2009, 14:03:40
Hallo wyho,

die Fehlermeldung besagt eindeutig das es sich um einen SYNTAX-Fehler handelt. Ich vermute das bezieht sihc darauf das man keine zuweisungen im bereich der klassen attribute machen kannst.

um es an deinem code zu veranschaulichen:

class Test
{
public $array = array(); // DAS IST OK
//public $aTest = array(1,2,3,4) NICHT OK!!

public function __construct()
{
$this->array = array('tomas', 'abraham', 'barbara'); // DAS IST OK
}
}

rarios
15.06.2009, 14:11:07
Hallo wyho,

die Fehlermeldung besagt eindeutig das es sich um einen SYNTAX-Fehler handelt. Ich vermute das bezieht sihc darauf das man keine zuweisungen im bereich der klassen attribute machen kannst.

um es an deinem code zu veranschaulichen:

class Test
{
public $array = array(); // DAS IST OK
//public $aTest = array(1,2,3,4) NICHT OK!!

public function __construct()
{
$this->array = array('tomas', 'abraham', 'barbara'); // DAS IST OK
}
}

Doch ein array funktioniert!
Das bekommt er gefüllt, $months und $days sind nich fehlerhaft und erzeugen auch keine Fehlermeldung.
Der kritische Punkt ist bei der Variable $monthtrial = getdate(n);
Anscheinend darf die Funktion getdate() nicht aufgerufen werden.

Indyk
15.06.2009, 14:41:05
Ok ok, ich nehme es zurück, array geht , und date geht nicht weil es eine funktion ist, und funktionen können im gegensatz zu sprach konstrukten (z.e.: language construct) (wie array es einer ist) in der initialisierung der klassen attribute nicht benutzt werden

wyho
15.06.2009, 15:01:21
Okay, vielen dank indyk!
Ich habe es jetzt mit deiner methode gelöst bekommen:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<?php
error_reporting(E_ALL);

// Klasse : Aktuelles Datum (CurDate)
class CurDate
{

// Kalender-Sprachvariablen
public $days = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag', 'Samstag');
public $months = array('Januar','Februar','März','April','Mai','Juni','Juli','August',' September','Oktober','November','Dezember');

// Kalender-Werte
function __construct() {
$this->monthtrial = date("n")-1;
$this->monthfull = date("m");
$this->daytrial = date("w");
$this->dayfull = date("d");
$this->wnumber = date("W");
$this->wday = date("w");
$this->year = date("Y");
}

// Datumsaufruf (CallDate)
public function CallDate()
{
echo "Datumsausgabe<br /><br />";
echo "Aktueller Monat: ".$this->months[$this->monthtrial]."<br />";
echo "Aktueller Tag: ".$this->days[$this->daytrial]."<br />";
echo "Aktuelle Woche: ".$this->wnumber;
}
}

$showdate = new CurDate();
$showdate->CallDate();

?>

// ## Ausgabe: ##
// Datumsausgabe
// Aktueller Monat: Juni
// Aktueller Tag: Montag
// Aktuelle Woche: 25