Sebastian: Funktionen werden ausgeführt oder nicht?

Hallo allerseits,

ich würde gerne wissen, unter welchen Bedingungen eine Funktion in PHP ausgeführt wird.

Ist es grundsätzlich so, dass eine Funktion, sobald sie im Quelltext steht und eine "funktionable" Syntax besitzt auch ausgeführt wird, oder muss ich sie ausfrufen?

Ich bin diesbezüglich gerade etwas verunsichert, da ich eine Funktion in ein Script eingebaut habe und diese einfach nicht ausgeführt wird:

function counter() {

$datei1 = "counter.txt";
      $handle1 = fopen($datei1, "r+");
 $count = fgets($handle1, 10);
  if ($count == "" or $count == 0) {
     $count == 1;
     echo $count;
  }
  else {
     $count++;
     echo $count;
  }
 rewind($handle1);
 fwrite($handle1, $count);
 return $count;
 }
In einem weiteren teil des Scripts möchte ich auf die Variable $count zugreifen, doch PHP meldet, das diese undeiniert ist.
Kann mir jemand sagen wieseo das so ist?
Hier die zweite Funktion!

function msg_txt($name,$nachname,$email,$website,$text){

$text = strip_tags($text);
  $text = htmlentities($text);
  $text = stripslashes($text);
  $name = htmlentities($name);
  $nachname = htmlentities($nachname);
  $timestamp = time ();
  $datum = date ("d.m.Y",$timestamp);
  $uhrzeit = date ("H:i",$timestamp);

$datei = "gbook.txt";
  $handle = fopen ($datei, "a");

// Abfrage bezüglich der E-Mail-Anzeige im Gbook
 if (empty($email) == false and $_POST["mailcheck"] == "yes") {
           $maillink = array( 1 => '<a href="mailto:', 2 => $email, 3 => '">', 4 => $name, 5 => '</a>' );
        $maillink = implode("", $maillink);
    }
 if (empty($email) or $_POST["mailcheck"] == "no") {
    $maillink = $name;
 }
 else {
           $maillink = array( 1 => '<a href="mailto:', 2 => $email, 3 => '">', 4 => $name, 5 => '</a>' );
 $maillink = implode("", $maillink);
 }

// Eintrag in die Textdatei
    fwrite ($handle, "Eintrag Nr.:$count<br />$maillink\n<br />\n$text<br />\nEingetragen am: $datum um $uhrzeit Uhr\n<br />\n<img src="gfx/pixel-line-2.gif" alt="" />\n<br /><br />\n");
    fclose ($handle);

if ($handle == true) {
        $check = true;
    }
    else {
        $check = false;
    }
    return $check;
}

$danke =  ;-) Über Tipps und Hinweise würde ich mich freuen!

Gruß
Sebastian

  1. Hi,

    Ist es grundsätzlich so, dass eine Funktion, sobald sie im Quelltext steht und eine "funktionable" Syntax besitzt auch ausgeführt wird, oder muss ich sie ausfrufen?

    letzteres, denn alles andere macht keinen Sinn. Stell Dir eine Funktion vor, deren Zweck es ist, die Festplatte zu formatieren.

    In einem weiteren teil des Scripts möchte ich auf die Variable $count zugreifen, doch PHP meldet, das diese undeiniert ist.

    Wenn Du eine Variable im Scope einer Funktion deklarierst, gilt sie auch nur dort, stirbt also mit der Beendigung der Funktion. Zwar könntest Du sie als globale Variable kennzeichnen, das ist aber sehr schlechter Programmierstil. Gib den Wert der Variablen an den Aufruf zurück, denn dort brauchst Du ihn schließlich.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      ich danke dir,
      jetzt weiß ich etwas mehr!

      Gruß
      ZAB