PHP Funktionen Fehler

Dark Ranger

Erfahrenes Mitglied
Code:
Fatal error: Cannot redeclare seteintragen() (previously declared in C:\Tools\XAMPP\xampp\htdocs\klrtool\config.php:6) in C:\Tools\XAMPP\xampp\htdocs\klrtool\config.php on line 9

Code:
   $eintragen; 
   $löschen; 
   function seteintragen($bool) 
   { 
      $eintragen = $bool; 
   } 
   function getterEintragen() 
   { 
      return $eintragen; 
   } 
   function setLöschen($bool) 
   { 
      $löschen = $bool; 
   } 
   function getterLöschen() 
   { 
      return $löschen; 
   }

Was ist da falsch?
Ich verstehe den Fehler nicht

Also ich habe den Code oben in einer Config.php und diese include ich in meine Index.php
Wenn ich nun die index.php aufrufe, dann kommt der Fehler.

Wenn ich nun den Code von der Config.php in die Index.php kopiere und ihn in der Config.php auskommentiere, dann geht es, aber das will ich ja nicht, ich will die Funktionen in einer externen Datei, damit ich es auch in anderen Dateien nutzen kann!
 
Daran habe ich auch zuerst gedacht, habe dann nochmal nachgeschaut, da wurde sie mehrfach includet, dass habe ich dann aber rausgenommen trotzdem erscheint der Fehler weiterhin.
 
Jetzt geht es, hatte doch noch ein include übersehen!

Naja aber, wenn ich setEintragen(TRUE) mache und direkt dahinter echo "Test ".getEintragen() dannn steht bei mir nur Test: Also ist die Variable leer wie es aussieht, aber das ist doch blöd
 
Hi,

die Variablen werden ausserhalb der Funktionen deklariert. Um in den Funktionen darauf zugreifen zu können, musst Du das Schlüsselwort "global" verwenden.

Wenn es sich um eine Klasse handelt, solltest Du mit "this" auf die Member zugreifen.

Gruß
.
 
Global habe ich schon getestet, das funktioniert nicht.

Und das mit dem this, das dürfte nicht gehen, weil es sich ja nicht um eine eigene Klasse handelt.
Oder wie wird this den angewendet?

Eidt: Bei Google finde ich nicht wirklich etwas zu this
 
Zuletzt bearbeitet:
Natürlich ist das so zumindest in den Funktionen wie du sie geschrieben hast ist $eintragen nicht definiert innerhalb der getterEintragen(). Warum es in der Index so funktioniert kann ich mir nicht erklären ,) Wenn du Funktionen hast die untereinander Variablen verändern sollen währe wohl eine Klasse besser. würde dann so aussehen:

PHP:
class foo {
	var $eintragen;
   	var $löschen;

    function seteintragen($bool){
        $this->eintragen = $bool;
    }
   	function getterEintragen(){
        return $this->eintragen;
    }
    function setLöschen($bool){
 		$this->löschen = $bool;
    }
    function getterLöschen(){
      return $this->löschen;
    }
}

$Objekt = new foo();
$Objekt->seteintragen(true);
echo $objekt->getterEintragen();
 
Mhhh habe das nun genau so eingebaut wie du es beschrieben hast, allerdings kommt bei mir folgender Fehler:

Code:
Fatal error: Cannot access empty property in C:\Tools\XAMPP\xampp\htdocs\klrtool\config.php on line 10
 
Lag am Variablennamen o.O
Das kommt davon wenn man den Code einfach hier eintippt *Seufz* also nochmal mit einem anderen Ojektnahmen

PHP:
<?
class foo {
    var $eintragen;
       var $löschen;

    function seteintragen($bool){
        $this->eintragen = $bool;
    }
       function getterEintragen(){
        return $this->eintragen;
    }
    function setLöschen($bool){
         $this->löschen = $bool;
    }
    function getterLöschen(){
      return $this->löschen;
    }
}

$foo = new foo();
$foo->seteintragen(true);
echo $foo->getterEintragen();

?>
 
Ich hab's bisher nie probiert, aber koennte es moeglich sein, dass Umlaute in Variablen- und Funktionsnamen evtl. unerwuenscht sind?
 
Zurück