Hallo
<?php
$eng = $_GET["engine"];
$engines = array(
"google" => "http://www.google.de/search?hl=de&q=$q&lr=lang_de",
"msn" => "http://search.msn.de/results.aspx?q=$q&mkt=de-DE&lf=1",
"yahoo" => "http://de.search.yahoo.com/search?p=$q&meta=vl%3D",
"webde" => "http://suche.web.de/search/web/?su=$q&su1=$q&webRb=de");function angeklickt($engine_name)
{
return $engines[$engine_name];
}
?>Wenn ich dann die Funktion so aufrufe:
<?php die (angeklickt($eng)); ?>
wird nichts ausgegeben. Wenn ich anstatt $eng zb. "msn" schreibe funktioniert es auch nicht.Wenn ich allerdings einfach
<?php die ($engines[$eng]); ?>
schreibe gibt er mit die URL aus.
Wenn du die (angeklickt($eng));
ausführst, fehlt der Funktion die Kenntnis vom Array $engines
. Eine funktion hat einen eigenen Namensraum. Das heißt, dass es eine Variable, z.B. $name sowohl außerhalb als auch innerhalb der Funktion geben könnte, ohne dass diese in Konflikt mit einander geraten. Willst du eine Variable von außerhalb in der Funktion verwenden, musst du diese der Funktion bekannt geben.
Entweder du bindest sie per global $engines;
in die Funktion ein, oder du übergibst sie der Funktion als Parameter (angeklickt($engines,$eng)
). In diesem Fall würde ich es per global machen.
Tschö, Auge
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
Veranstaltungsdatenbank Vdb 0.1