[php] Class Problem

DJPaschi

Digenis Progger
ID: 49867
L
19 Juni 2006
103
6
Moin,

ich bastel gerade an einer Klasse, die mehrere Seitenfunktion erfüllen soll.

Unter anderem soll damit Inhalt in ein Design eingebunden werden.

ich habe dabei mal folgendes probiert:

page.class.php

PHP:
class page{
	var $pfad=array();
	var $titel=array();	
	function page(){
		$this->pfad = $pfad;
		$this->titel = $ptitel;
	}
	
	function viewtitel($id){
		$this->page();
		if(!empty($this->titel[$id])){
			$titel1 = $this->titel[$id];
		}else{
			$titel1 = $this->titel['0'];
		}
		if(empty($titel1)){
			return "Fehler";
		}else{
			return $titel1;
		}
	}
	function viewpage($id){
		$this->page();
		if(!empty($this->pfad[$id])){
			$pfad1 = $this->pfad[$id];
		}else{
			$pfad1 = $this->pfad['0'];
		}
		if(empty($pfad1)){
			return "404.php";
		}else{
			return $pfad1;
		}
	}
		
}

Index.php
PHP:
		if(isset($id)){
			echo $temp1;
			$temp=$page->viewpage($id);
			if(file_exists($temp)){
				include($temp);
			}else{
				echo "Fehler 1";
			}
		}else{
			echo "Fehler 2";
		}

ich muss dazu sagen das die überprüfung der id in der index.php bisher nur der fehlersuche dient, da sie am anfang entweder aus $_GET['id'] ermittelt wird oder auf 0 gesetzt wird.

$pfad und $ptitel sind arrays welche Dateinamen bzw. Titel für den Contentbereich enthalten und aus einem array der config.inc.php geholt werden.

ich hoffe es ist alles deutlich und hoffe ihr könnt mir helfen

MfG
DJPaschi
 
ich frage mich gerade, was du mit der funktion page() bewirken willst... du willst in das Array etwas schreiben, was aber garnicht vorhanden ist. Die Variablen die du verwenden willst werden der Funktion garnicht übergeben und sind auch keine globalen Variablen... (die müssten vorher eh nochmals "includet" werden.

Vielleicht liegt darin ja schon der Fehler, sonst schau ich mir den Code nochmal genauer an
 
diese datei wird includet in eine hauptdatei und davor wird eine config includet wo die beiden arrays drin stehen ... ich frage mich halt nun wie ich das in die class kriege... global kenn ich ja von funktionen aber wie geht das bei klassen? das ist eigentlich so erst mal das hauptproblem ... wie mache ich die arrays in der klasse nutzbar ohne sie in der klasse zu setzen ...

Edit: ich muss dazu sagen das das ganze klassen-konstrukt neu für mich ist und ich daher ansich versuche das ganze hinzukriegen ... habe viel gelesen und ausprobiert ... aber halt noch nicht so lange damit befasst und daher in der tiefe noch nicht so fit
 
wollt noch mal fragen ob irgend jemand mir da nun noch weiter helfen kann da ja keine antwort mehr danach kam ... sicherlich was recht einfaches ... aber ich hab halt keine ahnung wie ich das mache deswegen ...
 
du kannst auf Variablen genau so zugreifen wie auf Funktionen/Methoden deiner Klasse.

$page->pfad
$page->titel
 
du kannst auf Variablen genau so zugreifen wie auf Funktionen/Methoden deiner Klasse.

$page->pfad
$page->titel

ja das ist mir klar ...

allerdings liegen die beiden arrays ausserhalb der klasse ... in einer datei namens config.inc.php die vor der klasse in die index includet wird...

und auf die will ich zugreifen
die beiden am anfang definierten arrays waren nur ein versuch das ganze zum laufen zu kriegen deswegen ...

verstehst du worauf ich hinaus will ??
 
allerdings liegen die beiden arrays ausserhalb der klasse ... in einer datei namens config.inc.php die vor der klasse in die index includet wird...
Eine Klasse greift auf keine Daten von außerhalb zu. Das ist ja grade der Sinn einer Klasse: Datenkapselung

Willst du Daten von außerhalb zuführen, musst du entsprechende Setter implementieren (die "böse" Variante kehr ich bewusst unter den Tisch ^^).
 
Du erstellst für sowohl den Titel als auch den Pfad eine Klassenmethode

setTitel($_title) { }
und
setPfad($_pfad) { }

in der die jeweiligen Attribute gesetzt werden.