variable in funktionen--und außerhalb

therealcharlie

Erfahrenes Mitglied
Die Frage tut mir fast schon leid, so einfach wird die Antwort wohl sein....
Ich habe eine Funktion, in der eine variable $pics gesetzt wird. diese würde ich gerne außerhalb der Funktion benutzen.
geht das irgendwie

danke im vorraus
 
mit global macht man das

oder die variable zurückgeben

PHP:
function bla($iwert) {
global $exwert;
$exwert =4;
$tmp = 6;
return $tmp;
}

echo bla(8);
echo $exwert;
 
Zuletzt bearbeitet:
Nein, nein, nein!
Globale Variablen solltest Du vermeiden. Die Funktion bekommt Parameter übergeben, macht etwas und gibt wieder etwas zurück. Und das sollte sie auch in anderen Projekten tun, wo man nicht gerade "erraten" möchte, wie nun genau die Variable heisst, die in der Funktion globalisiert wird. Zu folgendem rate ich Dir:
PHP:
function funktionsname(&$pics) {
  $pics = 'irgendwas';
  return TRUE;
}

$variable = '';
$retval = funktionsname($variable);
echo $variable; // enthält 'irgendwas'
Durch das &-Zeichen vor dem Parameter in der Definition der Funktion, wird die Änderung dieser Variable auch an die Variable übertragen, die an die Funktion übergeben wird.

snuu
 
hmm, ich versteh, was ihr meint, aber bei der durchführung fehlt noch was..
folgende funktion:
PHP:
//Funktion zum feststellen der Bilderanzahl
function how_many_pics()	{
		$result = mysql_query("SELECT * FROM passion_pics"); echo mysql_error();
		$pics = mysql_num_rows($result);
		return $pics;
							}//Ende der Funktion how_many_pics
echo $pics; gibt dann aber nichts zurück....
 
PHP:
<?php
//Funktion zum feststellen der Bilderanzahl 
function how_many_pics(&$pics)    { 
        $result = mysql_query("SELECT * FROM passion_pics"); echo mysql_error(); 
        $pics = mysql_num_rows($result); 
        return; 
}//Ende der Funktion how_many_pics

how_many_pics($ipics);

echo $ipics;
?>

So meinte snuu das. Du kannst nun die Fkt. "how_many_pics()" auch in anderen Projekten verbinden. Du weißt, dass der einzige Parameter der Fkt. eine Referenz darstellt. Im Klartext von der Fkt. heisst das, dass $pics auf die Speicherstelle von $ipics zeigt. Somit werden alle Änderungen von $pics auch bei $ipics vorgenommen :)

Hoffe war verständlich.
 
In diesem konkreten Fall würde ich es allerdings anders machen. Die Funktion gibt ja nur einen Wert zurück.
PHP:
<?php
//Funktion zum feststellen der Bilderanzahl
function how_many_pics()    {
        $result = mysql_query("SELECT * FROM passion_pics"); echo mysql_error();
        $pics = mysql_num_rows($result);
        return $pics;
}//Ende der Funktion how_many_pics

$ipics = how_many_pics();

echo $ipics;
?>

snuu
 
Zuletzt bearbeitet:
Zurück