SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 28.04.2003, 15:12:59
Benutzerbild von markusschmitt
markusschmitt markusschmitt ist offline
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
Mit Zitat antworten
  #2  
Alt 28.04.2003, 15:27:17
DanielLorbach DanielLorbach ist offline
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 datumdatumszahl$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)
Mit Zitat antworten
  #3  
Alt 28.04.2003, 16:29:52
amerix amerix ist offline
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...
Mit Zitat antworten
  #4  
Alt 28.04.2003, 18:46:22
Benutzerbild von markusschmitt
markusschmitt markusschmitt ist offline
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?
Mit Zitat antworten
  #5  
Alt 29.04.2003, 09:21:50
Benutzerbild von markusschmitt
markusschmitt markusschmitt ist offline
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
Mit Zitat antworten
  #6  
Alt 29.04.2003, 09:22:41
DanielLorbach DanielLorbach ist offline
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
Mit Zitat antworten
  #7  
Alt 29.04.2003, 10:33:18
Benutzerbild von markusschmitt
markusschmitt markusschmitt ist offline
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
Mit Zitat antworten
  #8  
Alt 29.04.2003, 10:41:48
DanielLorbach DanielLorbach ist offline
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
Mit Zitat antworten
  #9  
Alt 29.04.2003, 10:49:00
Benutzerbild von markusschmitt
markusschmitt markusschmitt ist offline
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
Mit Zitat antworten
  #10  
Alt 29.04.2003, 10:54:42
DanielLorbach DanielLorbach ist offline
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
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:29:50 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt