php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.09.2004, 11:21  
Gast
 
Beiträge: n/a
Standard Return mit rekursiver Funktion

hallo!

ich habe versucht, einen wert durch eine rekursive funktion zurückzugeben. der wert soll ein pfad sein, der rekursiv zusammengestellt wird.
wie auch immer, der wert wird innerhalb der funktion (siehe *)
richtig ausgegeben.
wenn ich den wert jedoch mit return an $pfad übergebe,
funktioniert es nicht (siehe: **).

kann mir jemand sagen, woran das liegt?

danke im voraus und gruss,

tek

php-code:

<?php
function test ($path, $count) {
$count++;
if ($count<10) {
$path = $path."link-";
test ($path, $count);
}
else {
echo $path; //*
return ($path);
}
}

$i=0;
$pfad = "";
$pfad = test ($pfad, $i);
echo $pfad; //**
?>
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.09.2004, 12:52  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

erst mal übersichtlichkeit schaffen ...

PHP-Code:
<?php

     
function test ($path$count
     {
          
$count++;

          if (
$count<10
          {
               
$path $path "link-";
               
test ($path$count);
          }
          else 
          {        
               echo 
$path//*
               
return $path;
          }   
     }


     
$i=0;
     
$pfad "";
     
$pfad  test ($pfad$i);
     
     echo 
$pfad//**

?>
dann würde ich behaupten (ungetestet), dass du ma ldie klammern beim return weglassen solltest.

http://www.php.net/manual/de/functio...ing-values.php


möööp:
hab mich verzockt.
klärung hier ..
Zitat:
Anmerkung: Beachten Sie, dass return() ein Sprachkonstrukt und keine Funktion ist. Die Klammern um ein Argument sind deshalb nur zwingend notwendig, wenn es sich um einen Ausdruck handelt, dessen Ergebnis zurückgegeben werden soll. Es ist gebräuchlich die Klammern wegzulassen, wenn eine Variable zurück gegeben soll.
hmm .. mach grade mal mittagspause .. vielleicht fällt mir danach was auf.
kann hier leider nichts testen, da ich keinen apachen zur verfügung habe ..

sorry + grüße ben.
imported_Ben ist offline   Mit Zitat antworten
Alt 28.09.2004, 13:06  
Gast
 
Beiträge: n/a
Standard

hast ja recht - danke für die übersicht
war vorhin alles ein bsischen hektisch.
das mit den klammern hab ich schon ausprobiert; daran liegt es leider nicht. bin verzweifelt ...

gruss, tek
  Mit Zitat antworten
Alt 28.09.2004, 13:17  
Gast
 
Beiträge: n/a
Standard

Ich habs

Das ist ein Phänomen das mir nicht bekannt war:
Wenn du $i=10 setzt und die Funktion damit nicht rekursiv ist, wird $pfad regelgerecht zurückgegeben.

Abhilfe kannst du dem so schaffen:
PHP-Code:
<?php 
     
function test ($path$count) { 
          
$count++; 
          if (
$count<10) { 
               
$path .= "link-"
               
// test ($path,$count);
               
$path test ($path$count); 
          }
          
// Ohne else!
          
return $path;              
     } 

     
$i=0
     
$pfad ""
     
$pfad  test ($pfad$i); 
      
     echo 
$pfad;

?>
Ich hab kurz drübernachgedacht ich kann dir aber nicht schlüssig erklären warum das so ist - Ein Fall von isso.

Die Funktion ruft sich ja immer und immer wieder selbst auf. Wahrscheinlich gibt er den Rückgabe-Wert an den Funktionaufruf in der Funktion zurück. Und so landet der Rückgabewert im Nirvana....


edit: Ich habs doch nicht
$path wird zwar zurückgegeben aber leider nur der ursprüngliche...

edit: Ich habs - diesmal endgültig
Der Rekursive Aufruf muss jetzt wie oben heissen....
  Mit Zitat antworten
Alt 28.09.2004, 13:30  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

yepp. so hab ich mir das auch gerade beim essen überlegt ... nettes problemchen
imported_Ben ist offline   Mit Zitat antworten
Alt 28.09.2004, 13:35  
Gast
 
Beiträge: n/a
Standard

Jo und ich hab mir jetzt ne große Portion 7a verdient.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Prototype Ajax Array Datenmüll notyyy HTML, Usability und Barrierefreiheit 2 08.04.2008 10:57
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Parsen von Delimitern Basti Tutorials 0 30.09.2006 21:24
Fehler in rekursiver Funktion tinchen PHP Tipps 2006 1 27.08.2006 20:24
Var außerhalb einer Funktion zur Verfügung stellen tinchen PHP Tipps 2006 6 13.08.2006 23:38
Funktion & return array() Schneckenkind PHP Tipps 2006 5 06.06.2006 10:09
Array in rekursiver Funktion auslesen Gumfuzi PHP Tipps 2007 17 15.11.2005 12:01
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
[Erledigt] Datenbank nicht erreichbar PHP Tipps 2005-2 27 19.08.2005 12:20
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Funktion schreiben um das Return einer Website einzufangen PHP Tipps 2004-2 40 30.12.2004 21:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php rekursive funktion return, rekursion return, php rekursiv return, rekursiv return, php rekursion return, rekursion mit return, php rekursion, http://www.php.de/php-fortgeschrittene/9896-return-mit-rekursiver-funktion.html, return rekursion, php rekursive funktion rückgabewert, rekursive funktion mit return php, rekursion php return, rekursive funktion php return, php funktion recursiv aufrufen private variable, pfadtest wikipedia, php rekurisive funktion rückgabewert, php if return funktion rekursion, rekursive funktion return, php return aus rekursiver funktion, return ausserhalb der funktion javascript

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.