[Erledigt] Return einer Methode wird nicht zurückgegeben

Hallo,

im Moment sitze ich bei einem Problem fest, dass ich mir einfach nicht erklären kann.

Ich möchte, dass eine getter-Methode eines Objektes per Return was zurückgibt.
Dies hat bisher auch ohne Probleme an anderen Stellen geklappt.
In diesem Fall jedoch nicht.

So, folgendes zum Aufbau:

Ich habe eine Index.php, die sich per require() den content der Seite holt.

Eine dieser content-Seiten heißt upload.php und liegt unterhalb des document-root

Diese verfügt über die Klasse "file", die aktuell folgendermaßen aussieht und auch per require() eingebunden wird:

PHP:
 <?php
// Dateiname: file.php
// Beschreibung: ...

class file {
	
	private $filename = "";
	private $filetype = "";
	private $text = "";
	private $cat = "";
	private $dat = 0;
	private $size = 0;
	private $maxSize = 0;
	
	function __construct($tmp_file) {
		$this->maxSize = 50000000; //50MB
		
		$this->filename = $tmp_file['name'];
		
		$splitFilename = explode(".", $tmp_file['tmp_name']);
		$this->filetype = $splitFilename[count($splitFilename)-1];

		$this->size = $tmp_file['size'];
		
		$this->dat = time();
		
		}
	
	public function getFilename() {
		
		return $this->filename;
		
		}
		
	public function getFiletype() {
	
		return $this->filetype;
		
		}

	public function getText() {
		return $this->text;
		}

	public function setText($tmp_text) {
		if($tmp_text != ""){
			$this->text = $tmp_text;
			return 0;
			}
		return 20;
		}
		
	public function getCat() {
		return $this->cat;
		}
	
	public function setCat($tmp_cat) {
		if($tmp_cat != ""){
			$this->cat = $tmp_cat;
			return 0;
			}
		return 20;
		}
			
	public function getDat() {
		return $this->dat;
		}
			
	public function getSize() {
		return $this->size;
		}

	}

Die Erzeugung des Objektes in der upload.php erfolgt aktuell folgendermaßen:

PHP:
require("../classes/file.php");
$file = new file($_FILES['file']);


Auf Seiten der upload.php erfolgt u.a. folgende Handlung:

PHP:
echo $file->getFilename

Letzteres bringt jedoch nichts zurück.
Innerhalb des Konstruktors erfolgt eine Zuweisung, die ich u.a. per var_dump($this->filename) geprüft habe.

Innerhalb der Methoden dieser Klasse scheinen die variablen jedoch leer zu sein.

Ich denke daher, dass das Problem in der Klasse selbst zu suchen ist. Habe jedoch keinen Plan was da schief läuft.

Zu Zwecken der besseren Übersicht habe ich die Überprüfungen der übergebenen Variablen entfernt. Auch bei dem geposteten Quelltext tritt der gleiche Effekt auf.

Nun noch kurz was zur verwendeten Server-Software:
Das ganze läuft aktuell lokal in einer xampp-Ungebung auf nem XP-Pro-Rechner.
PHP-Version: 5.2.5
Apache2


Mehr fällt mir zur Problembeschreibung aktuell nicht ein.

Ich hoffe mir kann jemand bei diesem Problem weiterhelfen.


Freundliche Grüße
 
ok ich kenn mich mit den klassen nich aus aber wird normalerweise nicht eine funktion aufgerufen in der du bestimmte variabeln von "außen" brauchst folgender weise:

PHP:
<?php
function test($variabel)
{
$variabel++;
return $variabel;
}

$a = 1;
echo test($a);

?>

und das vermiss ich bei dir?

*kann auch sein dasdas bei klassen anders gelöst wird
 
Hi,

wenn ich da keinen Denkfehler drin habe, dann läuft das bis dahin schon richtig.

Die Variablen, die von außen rein kommen (in diesem Fall $_FILES['file']), werden vom Konstruktor der Klasse beim Erstellen des Objekts entgegengenommen.

Das funktioniert ja auch soweit, da ich im Konstruktor die Variablen mittels var_dump() ausgeben kann.

Trotzdem danke für die Hilfe.
 
PHP:
 echo $file->getFilename;

Falls Du wirklich so auf die Methode zugreifen willst, dann wäre es kein Wunder dass das nicht funktioniert.

PHP:
 echo $file->getFilename();

So sollte das ganze gehen.
 
autsch, war das blöd...

thx

keine Ahnung warum ich die Methode als Variable behandeln wollte, aber nun hauts natürlich hin.
 
Zurück
Oben