function: Variable ausgeben

function: Variable ausgeben

am 19.10.2006 17:12:02 von Merle Mohr

Hallo,

kann mir jemand einen Tipp geben,
wie ich am Besten (auch) das $arr1 aus der
function herausgegeben bekomme - also danach
weiterverwenden kann?
(Notice: Undefined variable: arr1 ...)

function ($arr0, ...) {
if (!empty($arr0)) {
$query = ...
$result = ...
$menge = ...
if ($menge == 0) { } else {
$arr1=mysql_fetch_array($result);
}
} else {
}
echo "<—\n";
return $arr1;
}

ich find da im Moment einfach nichts ...|
Ich dachte mit return oder sprint, ... ?

Vielen Dank für Hilfen,
Gruß, Merle

Re: function: Variable ausgeben

am 19.10.2006 17:27:01 von Ulf Kadner

Merle Mohr schrieb:

> kann mir jemand einen Tipp geben,
> wie ich am Besten (auch) das $arr1 aus der
> function herausgegeben bekomme - also danach
> weiterverwenden kann?

mit return

> (Notice: Undefined variable: arr1 ...)
>
> function ($arr0, ...) {
> if (!empty($arr0)) {
> $query = ...
> $result = ...
> $menge = ...
> if ($menge == 0) { }
> else {$arr1=mysql_fetch_array($result);}
> } else {}
> echo "<—\n";
> return $arr1;
> }

Bitte immer lesbar formatieren ich habs mal für Dich gemacht.

Zum Thema: Du willst etwas zurück geben was nur dann existiert wenn
*eine* bestimmte von Deinen Bedingungen erfüllt wird.

Du muss vor dem ganzen Gerassel die Variable mit einem Wert
initialisiert der dann zurück gegeben werden soll wenn die Bedingung zum
Setzen dessen nicht erfüllt wird.

Mehr isses nicht.

MfG, Ulf

Re: function: Variable ausgeben

am 19.10.2006 18:17:22 von Merle Mohr

Hallo Ulf,
Danke!

>
> Bitte immer lesbar formatieren ich habs mal für Dich gemacht.
>
> Zum Thema: Du willst etwas zurück geben was nur dann existiert wenn
> *eine* bestimmte von Deinen Bedingungen erfüllt wird.
>
> Du muss vor dem ganzen Gerassel die Variable mit einem Wert
> initialisiert der dann zurück gegeben werden soll wenn die Bedingung zum
> Setzen dessen nicht erfüllt wird.

die Var ist eine array aus dem result.

function ($arr0, $v_sc1, $k_id01, ...) {
$arr1['$k_id01'] = "1"; // <<<<<<<<<<< ### etwa so? ...
if (!empty($arr0)) {
$query = ...
$result = ...
$menge = ...
if ($menge == 0) { $arr1['$k_id01'] = "1"; }
else { $arr1 = mysql_fetch_array($result); }
} else { $arr1['$k_id01'] = "1"; }
echo "<—\n";
return $arr1;
}

verstehe ich nicht richtig. So kommt auch nichts raus.

Gruß, Merle

Re: function: Variable ausgeben

am 19.10.2006 19:49:28 von Ulf Kadner

Merle Mohr schrieb:

> die Var ist eine array aus dem result.

?

> function ($arr0, $v_sc1, $k_id01, ...) {

Warum gibst Du Deiner Funktion keinen Namen? Hatte ich bein letzten
posting ganz übersehen. Schau doch bitte erst mal ins Manual und pauke
Basiswissen zu PHP. Wenn eine Funktion keinen Namen hat kann man diese
auch nicht aufrufen!

> $arr1['$k_id01'] = "1"; // <<<<<<<<<<< ### etwa so? ...

nein Du sollt es initialisieren!
was weis ich

$arr1 = false;

beim Aufruf dann z.B.:

if (FALSE === ($res=myfunction(...))) exit('ERROR!');
var_dump($res);

> verstehe ich nicht richtig. So kommt auch nichts raus.

Würde mich ja mal stark interessieren wie Du zu dieser Erkenntnis
gelangt bist. Eine Funktion ohne Namen aufrufen erzeugt eindeutige
Fehlermeldungen!

Wenn nicht justiere Dein error_reporting am Scriptanfang (aber nur zur
Entwicklung bitte): error_reporting(E_ALL);

MfG, Ulf

Re: function: Variable ausgeben

am 19.10.2006 21:56:20 von Claus Reibenstein

Merle Mohr schrieb:

> kann mir jemand einen Tipp geben,
> wie ich am Besten (auch) das $arr1 aus der
> function herausgegeben bekomme - also danach
> weiterverwenden kann?
> (Notice: Undefined variable: arr1 ...)

An welcher Stelle kommt diese Meldung?

> function ($arr0, ...) {

Funktionsname fehlt.

> return $arr1;

Hier gibst Du $arr1 doch ordnungsgemäß zurück.

Wo liegt jetzt Dein Problem?

Gruß. Claus

Re: function: Variable ausgeben

am 19.10.2006 22:57:47 von Ulf Kadner

Claus Reibenstein schrieb:

> An welcher Stelle kommt diese Meldung?

Da must Du schon error_reporting korrect einstellen!

Bsp.:

error_reporting(E_ALL);

function a($status=false) {
if ($status) $ret = 100;
return $ret;
}

echo a();

Ist doch auch eindeutig. Hatte ich ja bereits geschrieben!

Die Fehlermeldung bessergesagt Notiz wird da erstellt wo $ret zurück
gegeben werden soll.

Nichts aussergewöhnliches.

MfG, Ulf

Re: function: Variable ausgeben

am 20.10.2006 02:10:56 von Merle Mohr

Hallo,
danke! Es funktioniert - auch ohne initiallisieren.

sorry! function sollte nat. für functionsname stehen ... :-(

$res=myfunction(...)
bringt mir ein Ergebnis-array ($res).
(den Vorgang werd/muß ich mir noch genauer anschauen ...
war irgendwie drauf eingestellt, dass eine Funktion
einfach ausgibt)

error_reporting(E_ALL); ist immer an.

schöne Grüße, Merle

Re: function: Variable ausgeben

am 20.10.2006 11:24:02 von Claus Reibenstein

Ulf Kadner schrieb:

> Claus Reibenstein schrieb:
>
>> An welcher Stelle kommt diese Meldung?
>
> Da must Du schon error_reporting korrect einstellen!

Dann musst Du aber erst einmal ein _vollständiges_ Programmbeispiel
liefern, um den Fehler überhaupt nachvollziehen zu können. An Deinem
unvollständigen Frickelcode ist das nicht möglich.

> Bsp.:
>
> error_reporting(E_ALL);
>
> function a($status=false) {
> if ($status) $ret = 100;
> return $ret;
> }
>
> echo a();
>
> Ist doch auch eindeutig. Hatte ich ja bereits geschrieben!

Das ist ein vollständiges Beispiel, und daran kann ich den Fehler sogar
durch reine optische Kontrolle sofort erkennen.

> Die Fehlermeldung bessergesagt Notiz wird da erstellt wo $ret zurück
> gegeben werden soll.

Weil $ret zu diesem Zeitpunkt bei dieser Form des Aufrufs nicht
definiert ist ($status ist false). Du willst also etwas zurückgeben, was
gar nicht existiert.

Ergänze Dein if mal durch ein else $ret = 0;

Gruß. Claus

Re: function: Variable ausgeben

am 20.10.2006 11:55:44 von Ulf Kadner

Claus Reibenstein schrieb:

> Dann musst Du aber erst einmal ein _vollständiges_ Programmbeispiel
> liefern, um den Fehler überhaupt nachvollziehen zu können. An Deinem
> unvollständigen Frickelcode ist das nicht möglich.

Was soll das denn bitte? Lies doch bitte erst noch mal das durch was der
OP geschrieben hat und vor allem auf was ich mich beziehe bevor Du Dich
hier übernimmst!

Sein Code:

function ($arr0, ...) {
if (!empty($arr0)) {
$query = ...
$result = ...
$menge = ...
if ($menge == 0) { }
else {
$arr1=mysql_fetch_array($result);
}
} else {}
echo "<—\n";
return $arr1;
}

Mein Code stellt dessen nur aufs wesentliche gekürzt dar um zuzeigen was
er falsch macht, bzw. um Dir zu zeigen an welcher Position der Fehler
entsteht. Deine Frage war ja:

| An welcher Stelle kommt diese Meldung?

Was willst Du also jetzt?

> Weil $ret zu diesem Zeitpunkt bei dieser Form des Aufrufs nicht
> definiert ist ($status ist false). Du willst also etwas zurückgeben, was
> gar nicht existiert.

Ich will garnix zurueck geben. Was verstehst Du nicht an meiner
Vereinfachung des Problems des OPs?

> Ergänze Dein if mal durch ein else $ret = 0;

Was dann nicht mehr dem entspricht was der OP gepostet hat.

MfG, Ulf

Re: function: Variable ausgeben

am 21.10.2006 00:41:32 von Matthias Esken

On Fri, 20 Oct 2006 11:24:02 +0200, Claus Reibenstein wrote:

> Weil $ret zu diesem Zeitpunkt bei dieser Form des Aufrufs nicht
> definiert ist ($status ist false). Du willst also etwas zurückgeben, was
> gar nicht existiert.

Du willst vielleicht noch mal nachlesen, was Ulf überhaupt erklären wollte.

Gruß,
Matthias