Funktionen?

MIniMe_

Erfahrenes Mitglied
Wo gibts ein richtig gutes TUT zu Funktionen? Das einzige was ich mit Funktionen hingekriegt habe war das:
PHP:
function urllink($link,$target,$name,$on) {
if ($target=="blank") {
$target = "target=\"_blank\"";
} elseif ($target=="top") {
$target = "target=\"_top\"";
} else { $target = ""; }
echo "<a href=\"$link\" $target onmouseover=\"window.status='$on'; return true\" 
onmouseout=\"window.status=''; return true\">$name</a>";
}

function mailtolink($link,$name,$on) {
echo "<a href=\"mailto:$link\" onmouseover=\"window.status='$on'; return true\" 
onmouseout=\"window.status=''; return true\">$name</a>"; }
Aber diese Funktion ist seeehr umständlich, da man z.b. so schreiben muss:
PHP:
<?
echo "BlaBlaBla.... und der link:";
urlink(blablabla,blavlasdasd,asdasd,adssdwdwd);
echo "Und Bla Bla Bla....";
?>
Mit anderen Worten muss man erstmal den echo befehl abschließen, die funktion einleiten, und dann mit echo weitermachen. könnte ich das nicht so machen das ich gleich in den text die funktion einbaue? also so:
PHP:
<?
echo "BlaBlaBla.... und der link: urlink(blablabla,blavlasdasd,asdasd,adssdwdwd); Und Bla Bla....";
?>
was natürlich aufgrund der " nicht geht
 
Zuletzt bearbeitet:
hmm...ich wüsste zwar auch keine andere methode als diese stringaneinaderhängung da, aber wollt nur was verbessern.
nei deiner funktion fehlt noch das target=.

also so halt:

PHP:
function urllink($link,$target,$name,$on) {
if ($target=="blank") {
$target = "target=\"_blank\"";
} elseif ($target=="top") {
$target = "target=\"_top\"";
} else { $target = ""; }
echo "<a href=\"$link\" target=\"$target\" onmouseover=\"window.status='$on'; return true\" 
onmouseout=\"window.status=''; return true\">$name</a>";
}

function mailtolink($link,$name,$on) {
echo "<a href=\"mailto:$link\" onmouseover=\"window.status='$on'; return true\" 
onmouseout=\"window.status=''; return true\">$name</a>"; }

;)
 
und wie ist das mit global? und return $variable ?
was bedeutet das? ich will jetzt eine funktion bauen, mit der ich ein verzeichniss einlese:
PHP:
<?

function dirread($dir) {
$handle=opendir($dir);
$array=array();
$files=array();
$directory=array();
$a=0;
$b=0;
while (false!==($file=readdir($handle)))
{
   if ($file!="."&& $file!="..")
   {
    if(is_dir($file))
    {
    $directory[$b]=$file;
    $b++;
    }
    else
    {
    $files[$a]=$file;
    $a++;
    }
   }
}
   closedir($handle);
   natcasesort($files);
   natcasesort($directory);
   $array=array_merge($directory,$files);
   global $files; 
}

dirread("joined/");
echo $files;
?>
was mache ich da falsch? ich will files als variable für den ordner joined haben!
 
zu global:

in PHP haben alle Variablen nur in dem Bereich Gültigkeit, in dem sie definiert wurden. Wenn Du also eine Variable, die im Hauptprogramm gültig ist auch in einer Funktion verwenden willst musst Du sie mit:
PHP:
global $variable;
erst dort "gültig machen"

Beispiel:
PHP:
function irgendwas() {
    global $variable;
    echo $variable;
}

// Hauptprogramm
$variable = "irgendein text";
irgendwas();


zu return:

jede Funktion kann einen "Rückgabewert" besitzen. Also einen Wert, der beim Aufruf der Funktion an das aufrufende Script zurückgegeben wird.

Beispiel:
PHP:
function addiere($a,$b) {
    $ergebnis = $a + $b;
    return $ergebnis;
}

// Hauptprogramm
echo addiere(5,1);

in diesem Fall wird die Funktion aufgerufen, und der Rückgabewert direkt per echo ausgegeben.

noch Fragen ?

Dunsti

PS: den Spruch in Deiner Signatur wirst Du schnell vergessen, wenn Du mal was umfangreicheres in Textdateien programmieren musst :)
 
ah ja, glaub ich habs verstanden. jedenfalls bis ich das nächste mal auf nen fehler stoße :)
öhhh, textdateien? also ich arbeite gerade an einem komplexen memberscript mit warplaner und forum, etc. und bin noch nicht an die grenzen gestoßen. na, mal schauen, irgendwann tu ichs bestimmt noch :)
 
an Grenzen wirst Du aus Programmiertechnischer Sicht sicher nicht stossen, aber das Ganze wäre mit MySQL sicher um Einiges einfacher zu programmieren ;)

An Grenzen stößt Du z.B. recht schnell, wenn mehrere Benutzer gleichzeitig auf die selbe Textdatei zugreifen wollen. Da hat MySQL bessere Karten ;)

Aber versteh mich nicht falsch ... wenn ich mal Fragen zu Textdateien hab komm ich gern auf Dich zurück :)


Dunsti
 
hehe

ok, tu das :)
hmm, was würde denn passieren wenn 150 user gleichzeitig auf eine textfile zugreifen würden?
und wenn du meinst das ich mit mysql besser bedient wäre, gibts irgendwo ein ordentliches tut dazu? kann ich überhaupt auf meinem omnihttpd server mysql laufen lassen? wenn ja wie? und überhaupt, wie geht dat denn?
 
hmmm.....ich dachte auch immer, das man mit TXT-Filez alles easz machen kann.

gehts auch, wenn man wirklich immer bei der sache bleibt. aber nachdem ich die ersten paar script mit mysql getestet habe bin ich selbst auf den geschmack von datenbanken gekommen und kann den umstieg eigentlich echt nur empfehlen (obwohls ja deine sache ist, wie du programmierst!).

hmmm....vielleicht schreib ich mal ne' kleine einleitung zu mysql für totale MySQL-n00bs.
mal schauen o´b sich die zeit dazu finden lässt!
 

Neue Beiträge

Zurück