zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Class constructor php5 zu php4

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 28.04.2011, 22:34
{ display: random;}
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 08.09.2004
Ort: Stuttgart
Beiträge: 5.034
andir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblickandir ist ein wunderbarer Anblick
Standard Class constructor php5 zu php4

Hallo zusammen,

bekanntermassen habe ich es mit php nicht so, aber dafür gibts ja Euch

Mein aktuelles Problem: Ich versuche ein einfaches Event-Kalenderskript mit Eintragungsmöglichkeit für autorisierte User zum Laufen zu bekommen (ohne MySQL) - das einzige, das der Webspace bei Versatel mit eingeschränkten Config-Möglichkeiten und php-Version 4.3.1 zumindest ausführt.... ohne 500er oder 403er.... (jaja, alles mit Rechtevergabe und dergleichen schon versucht), das leider in php5 geschrieben ist und der Webspace hat nur php4 integriert, genauer gesagt 4.3.1 und bietet leider keine Option, z.B. per htaccess auf php5 zu switchen. Bitte keine Fragen dazu, ist für eine Schule und natürlich ehrenamtlich.

Wer es genauer wissen will, es handelt sich um das Skript

EasyPhpEventCalendar Class | MyWebMyMail.com und dort um die ...class.php im Ordner /inc.

Ich habe im Vorfeld schon eine Menge "public" Variablen á la
Code:
public $Gfxurl;
umgewandelt in z.b.
Code:
var $Gfxurl = 'Pfad' ;
und immerhin keinen Server Error erhalten, das heißt, ich rücke zeilenweise nach vorn bis der Server einen php-Error meldet . Auf diese Weise arbeite ich mich durch das Skript durch.


Folgenden Code habe ich in PHP5:
Code:
	public function __construct() {

		$this->Gfxurl  = 'gfx';
		$this->Days    = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
		$this->Months  = array('Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
		$this->Events  = array();
		$this->Hide    = false;
}
das muss ich jetzt für php4 umschreiben. Ich habe schon Schwierigkeiten zu verstehen, wofür eigentlich ein Konstruktor gedacht ist. Die diversen Beschreibungen "Ein Konstruktor ist nichts anderes als eine Funktion, die immer dann aufgerufen wird, wenn das Objekt der Klasse instanziert wird." sagen mir nichts. Ist das eine Art automatischer Ausführer/Befüller/Abrufer?
Die Variablen sind ja bereits definiert, werden aber später anscheinend durch Abrufe von exisitierenden Textdateien in einem bestimmten Ordner (keine Datenbank) mit Leben gefüllt.
Wie bekomme ich das unter php4 gebacken? Muss ich für jede Variable eine eigene Klasse mit Konstruktor definieren? Mit php5 reicht ja der Aufruf in der ersten Zeile des obigen Codes anscheinend aus.
Daraus bin ich nicht schlau geworden:

PHP4 and Constructor


Mein optimistischer Ansatz wäre jedenfalls folgender:
Code:
class fill {
function fill{
	$this->Gfxurl  = 'gfx';
		$this->Days    = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
		$this->Months  = array('Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
		$this->Events  = array();
		$this->Hide    = false; 
}
}
wobei ich davon ausgehe, dass der Klassenname hier vollkommen irrelevant ist. Jaja, ich habe keine Ahnung von PHP

Danke schonmal fürs Lesen
__________________
Grüsse Andreas- auch mal wieder da...

Design isn't about the tools, it's about creating the best experience for the user. A design should be based on usability, accesibility, aesthetics, but never on floats, lists or background images. ( by Cameron Adams)
Wiedergelesen: > hier und hier

[Foren-Links] Dein Post? Klar, DAS vorher gelesen? Hilft. ## User-Landkarte
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 28.04.2011, 23:02
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Ich würd' ja sagen: Lern' die Basics, aber da Du das nur ehrenamtlich machst will ich mal nicht so sein.

Was ein Konstruktor ist kann ich glaube ich kaum besser erklären, als das, was Du bereits geschrieben hast.
Ein Konstruktor konstruiert ein Objekt, nicht mehr und nicht weniger.
Ein Objekt ist eine Instanz einer Klasse, wobei man sich die Klasse dabei als Schablone oder Bauplan vorstellen muss.
Der Konstruktor soll dann dafür sorgen, dass sich ein erstelltes Objekt in einem definierten Zustand befindet, so dass man damit arbeiten kann, z.B. Variablen initialisieren.

Der Konstruktor ist dabei eine "normale" Methode einer Klasse, die allerdings automatisch aufgerufen wird, sobald ein Objekt erzeugt wird.

PHP-Code:
class Test {
    public function 
__construct() {
        echo 
"Ein Objekt von Test wurde erstellt<br>\n";
    }
}

$t = new Test(); 
Wenn Du dies testest, wirst Du festellen, dass obige Zeichenkette ausgegeben wird, obwohl Du nicht explizit "$t->__construct();" aufgerufen hast.

In PHP4 wurden Konstruktoren noch durch Methoden realisiert, die genauso hießen, wie die Klasse selbst.

Also entweder ergänzt Du eine Methode, die den Namen der Klasse erhält, oder Du ersetzt "__construct()" durch eben diese Methode.

Am Beispiel:
PHP-Code:
class Test {
    function 
Test() {
        echo 
"Ein Objekt von Test wurde erstellt<br>\n";
    }
}

$t = new Test(); 
Wenn der Code unter beiden Versionen laufen soll, empfielt es sich beide Konstruktoren einzubauen, wobei der eine den anderen aufrufen kann (und sollte).
PHP-Code:
class Test {
    function 
Test() {
        
$this->__construct(); // call PHP5 (normal) constructor
    
}
    
    function 
__construct() {
        echo 
"Ein Objekt von Test wurde erstellt<br>\n";
    }
}

$t = new Test(); 
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Span class wird nicht erkannt basillio CSS 4 13.09.2010 14:16
identische class in unterschiedlicher Struktur einzeln ansprechen 1chris CSS 4 16.10.2009 19:13
Class? tomke19 CSS 4 26.05.2007 02:08
2 Div Class in ID - Vererbung info CSS 3 20.01.2007 14:34
class in class PrinzEisenherz CSS 9 21.06.2004 19:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:48 Uhr.