CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |

28.04.2003, 15:12:59
|
 |
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 70
|
|
Funktionsaufruf in einer Funktion
Wie mach ich einen Funktionsaufruf in einer Funktion?
$datum = datum($datumszahl);
klappt nicht.
Muss ich was beachten wenn ich einen Aufruf mach?
Beide Funktionen stehen im gleichen Skript und es wird nichts included. Wenn ich die Funktion aus der ich Aufrufe in mein normales Skript aufnehme klappt der Aufruf.
PS: Ich bekomm auch keine Fehlermeldung!!!!
Mfg Markus
|

28.04.2003, 15:27:17
|
Anfänger
|
|
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 38
|
|
Liefert Deine Funktion eine Variable zurück?
PHP-Code:
function datum( $zahl)
{
// Deine Anweisungen
return $dein_rueckgabewert;
}
edit: Wer hat auf meine Entertaste gedrückt?
Wenn Datum Deine erste Funktion ist, soll dann DatumsZahl Deine zweite Funktion sein?
In diesem Falle müsstest Du folgendes schreiben:
PHP-Code:
$datum = datum( datumszahl( $dein_parameter));
Poste doch mal Deinen Code
__________________
CU, Daniel.
http://www.rheinsiegbahn.de
Geändert von DanielLorbach (28.04.2003 um 15:32:50 Uhr)
|

28.04.2003, 16:29:52
|
Junior Member
|
|
Registriert seit: Aug 2002
Alter: 42
Beiträge: 332
|
|
Hi, schau auch mal, ob in der Funktion überhaupt die Variable stimmt...
Beispiel
Code:
$counternummer=77
function nummertext(){ echo 'du bist besucher'; nummer() }
function nummer(){$nummer++; echo $counternummer;}
nummertext();
geht nicht,
da in der fucniton nummer() erst global $counternummer;
stehen muss...
|

28.04.2003, 18:46:22
|
 |
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 70
|
|
Sorry war ein paar Stunden weg
Also ich hab 2 Funtkionen und ein normales Skript. Die Funktionen stehen in dem Skript.
Aufbau
PHP-Code:
function datum()
{
blablabla
return $nr;
}
function rekursiv()
{
blablabla
$datumverzzahl = datum($month); //Funktiniert nicht und gibt nichst zurück
}
normale Skript mit dem Funktionsaufruf von rekursiv
Wenn ich es so mache:
PHP-Code:
function datum()
{
blablabla
return $nr;
}
blablabla
$datumverzzahl = datum($month); //Bekomm ich return Wert
Wieso klappt ersteres nicht?
|

29.04.2003, 09:21:50
|
 |
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 70
|
|
Ich weiß nicht woran es liegt, aber ich bekomm einen returnwert zurück wenn ich in datum() mir etwas mit return zurückgeben lasse. Hier mal ein kleiner Ausschnitt aus dem Code:
PHP-Code:
//Aufruf in der Funktion rekursiv()
$month = $date[0]; //Monat
$datumverz = $date[1]; //Tag
$datumverzzahl = datum($month); //Bekomm keinen return von datum() nur wenn ich z.B. function datum(){return 2;} mache.
echo $month . " = "; //$month wird ausgegeben
//Funktion Datum
function datum()
{
global $month; //Sollte jetzt ja eigentlich übergeben sein.
echo $month; //Bekomme keine Ausgabe.
Wer weiss rat?
Mfg Markus
|

29.04.2003, 09:22:41
|
Anfänger
|
|
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 38
|
|
Soweit ich das ohne meinen morgen Kaffee (keiner da :-( ) überblicken kann, gibt Deine Funktion rekursiv keinen Wert zurück.
Du musst also noch return $datumverzzahl; an das Ende der Funktion rekursiv schreiben, wie Du es auch in der Funktion datum getan hast.
PHP-Code:
function rekursiv();
{
// Deine Anweisungen
$datumverzzahl = datum( $month);
//Und hier der Rückgabewert
return $datumverzzahl;
}
// Ergebnis ausgeben
print rekursiv();
Bei der ganzen Sache fällt mir noch auf, dass Du keinen Übergabeparameter in der Funktion datum definiert hast.
__________________
CU, Daniel.
http://www.rheinsiegbahn.de
|

29.04.2003, 10:33:18
|
 |
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 70
|
|
Sorry ich glauf du hast mich falsch verstanden.
rekursiv hat keinen return Wert.
Die Funktion rekurisv soll die Funktion datum aufrufen und den Returnwert in $datumverzzahl speichern. Das Problem:
$month wird nicht mitübergeben. Selbst global $month in der Funktion datum hat nichts gebracht. Wenn ich sage
function datum()
{
return 2;
}
wird mir 2 Als return Wert in die Funktion rekursiv angezeigt.
Wieso wird mir month aber nicht übergeben?
Wenn ich sage in der Funktion rekursiv
$month = "Jan";
$datumverzzahl = datum( $month);
und ich mir month in der Funktion datum ausgeben lassen will klappt das nicht obwohl ich sogar $month in der Funktion datum globalisiert habe.
Mfg Markus
|

29.04.2003, 10:41:48
|
Anfänger
|
|
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 38
|
|
Aso, dann fehlt Dir der Übergabeparameter:
PHP-Code:
function datum ( $dein_parameter)
{
// Deine Anweisungen
return $dein_returnwert;
}
function rekursiv()
{
$month = "JAN";
print datum( $month);
}
Mit globalen Variablen sieht das wie folgt aus (ist aber nicht empfehlenswert, da man sich schnell verzetteln kann. Ich zumindestens *g*):
PHP-Code:
$month = "";
function datum()
{
global $month;
// Deine Anweisungen
}
function rekursiv();
{
global $month;
datum();
print $month;
}
Ich hoffe, jetzt ist es klar.
__________________
CU, Daniel.
http://www.rheinsiegbahn.de
|

29.04.2003, 10:49:00
|
 |
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 70
|
|
Hab mich mal hingehockt und meinen Code stark gekürzt damit du siehst wie ichs meine. Code erklärt sich besser wie wenn mand erklärt!
PHP-Code:
<?
error_reporting(E_ALL);
function rekursiv()
{
global $servername, $username, $passwort, $port, $open;
$rawlist = ftp_rawlist($open, $current_path);
foreach ($rawlist as $file)
{
...
$dateroh = $datum[0][0]; //Beispiel "Jan 24"
$date = explode (" ", $dateroh);
$month = $date[0]; //Monat Beispiel "Jan"
$datumverz = $date[1]; //Tag Beispiel "24"
$datumverzzahl = datum($month);
echo $month . " = "; //month wird ausgegeben also "Jan"
echo $datumverzzahl . "<br>"; //$datumverzzahl nicht
...
}
}
function datum()
{
global $month;
echo $month; //month wird nicht ausgegeben
if ($month == "Jan")
return 01;
if ($month == "Feb")
return 02;
...
}
//Normales Skript
$servername = "al-capone.de";
$username = "markus";
$passwort = "schmitt";
$port = "21";
...
rekursiv();
?>
Mfg Markus
|

29.04.2003, 10:54:42
|
Anfänger
|
|
Registriert seit: Jul 2002
Ort: Köln
Beiträge: 38
|
|
Wie ich schon geschrieben habe: entweder definierst Du einen Übergabe-Parameter in der function datum oder musst in der function rekursiv die Variable $month mittels global reinholen.
Schau Dir meine Beispiele von 10:41 Uhr an, dann siehst Du, was ich meine.
__________________
CU, Daniel.
http://www.rheinsiegbahn.de
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:49:23 Uhr.
|