php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.01.2005, 09:33  
Gast
 
Beiträge: n/a
Standard [Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben

...und diese liefert mir die geänderten Werte zurück?

Guten Morgen,

ich habe folgendes Problem:
Ich habe ein Objekt
PHP-Code:
$object 
. Dieses hat 7 Werte
PHP-Code:
$object->eins 
bis
PHP-Code:
$object->sieben 
. Nun möchte ich an eine Funktion beliebig viele dieser Werte übergeben. Die Funktion soll nun die Anzahl der übergebenen Werte prüfen, deren Wert mit
PHP-Code:
sprintf('%03d'$objekt->zahl
von links mit Nullen auffüllen und wieder zurückgeben.
Z.B. übergebe ich an die Funktion
PHP-Code:
$object->drei$object->vier und $object->sieben 
. Deren Werte sind 21, 9, 13. Die Funktion soll nun zurückliefern 021, 009, 013. Meine Frage ist nun, gibt es eine Möglichkeit die Funktion nur einmal aufzurufen, die Werte in der Funktion zu ändern und wieder zurückzugeben?
Mein Ansatz ist folgender:
PHP-Code:
function foo() {
    foreach (
func_get_args() as $key => $value) {
        
$value sprintf('%03d'$value);
    }
     return 
$value;

Funktioniert allerdings nicht so ganz... (wen überrascht es?)
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.01.2005, 09:49  
Gast
 
Beiträge: n/a
Standard

Du weist doch in jedem foreach Durchlauf dem $value einen neuen Wert zu, und am Ende wird doch nur der letzte $value zurückgegeben. Fehler erkannt?
 
Alt 25.01.2005, 09:58  
Gast
 
Beiträge: n/a
Standard

nicht so richtig. was muss ich denn zurückgeben? ein array und wenn, wie sieht das dann aus? außerdem bin ich mir nicht sicher wie ich die funktion überhaupt aufrufe. ich glaube ich muss die funktion dreimal (also für jeden wert) aufrufen. woher weiß denn das objekt, welche werte sich geändert haben?
 
Alt 25.01.2005, 10:06  
Gast
 
Beiträge: n/a
Standard

Stimmt du kannst z.B. in jedem foreach Durchlauf den Wert von $value in ein Array packen, also mit array_push z.B., und dann den Array zurückgeben, dann musst du aber wieder den Array auslesen um die Werte da raus zu holen.

Warum sollen eigentlich immer nur bestimmte Werten vorangestellte Nullen bekommen, warum nicht gleich alle? Was ist der Sinn des Scripts?
 
Alt 25.01.2005, 10:15  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

morgen.
PHP-Code:
<?php


  
function foo$_array )  
  { 
      for( 
$i 0$i count($_array); $i++ )
      {
          
$_array[$i] = sprintf'%03d'$_array[$i] ); 
      }
 
      return 
$_array
  }


  function 
pre$_array )
  {
      echo 
'<pre>';
      
print_r$_array );
      echo 
'</pre>';
  }


  
$_array = array( 15621);
  
pre$_array );

  
$_array foo$_array ); 
  
pre$_array ); 


?>
grüße ben.
imported_Ben ist offline  
Alt 25.01.2005, 10:18  
Gast
 
Beiträge: n/a
Standard

nun, es geht um reine ästhetik. auf der einen seite werden 2 von 7 werten angezeigt (dann will ich auch nur 2 werte an die funktion übergeben), auf der nächsten seite werden 4 von 7 werten angezeigt, usw.

das problem mit dem array auslesen nachher sehe ich darin, dass mir die zugehörigkeit verloren geht. woher weiß ich denn noch, welchen wert ich übergeben hatte ($object->eins ... $object->sieben)??? ich bekomme ja nur den wert zurück geliefert, habe aber keinen key.
 
Alt 25.01.2005, 10:25  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
<?php


  
function foo$_array )  
  { 
      foreach( 
$_array as $key => $value )
      {
          
$_array[$key] = sprintf'%03d'$value ); 
      }
 
      return 
$_array
  }


  function 
pre$_array )
  {
      echo 
'<pre>';
      
print_r$_array );
      echo 
'</pre>';
  }


  
$_array = array( "eins"  => 1
                   
"vier"  => 4,
                   
"sechs" => 6
                   
"elf"   => 11 );
  
pre$_array );

  
$_array foo$_array ); 
  
pre$_array ); 


?>
du kannst auch ein assoziatives array daraus machen.
imported_Ben ist offline  
Alt 25.01.2005, 10:27  
Gast
 
Beiträge: n/a
Standard

@ben:
danke, aber mein problem ist, dass ich nicht jedesmal das komplette array übergeben will, sondern meinetwegen nur die 1, die 6 und die 21. beim nächsten aufruf dann vielleicht die 6, die 21 und die 5.
so soll das array nach dem funktionsaufruf wie folgt aussehen:
beim ersten mal array(001,5,006,021,5) und beim zweiten mal array(1,5,006,021,005).
 
Alt 25.01.2005, 10:33  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und was mache ich?
hast du das denn mal ausprobiert .. ausgabe ist z.b. so etwas hier:

Code:
Array
(
    [eins] => 1
    [vier] => 4
    [sechs] => 6
    [elf] => 11
)

Array
(
    [eins] => 001
    [vier] => 004
    [sechs] => 006
    [elf] => 011
)
das du nun ein assoziatives array hast ist doch nicht weiter schlimm ..
imported_Ben ist offline  
Alt 25.01.2005, 10:35  
Gast
 
Beiträge: n/a
Standard

ja, hab ich - nur wenn ich dein skript richtig verstehe, wird doch jeder wert bis er dreistellig ist mit nullen aufgefüllt, oder etwa nicht?
 
 


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
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
Werte Prüfung mehrer Textboxen mit einer Funktion HTML, Usability und Barrierefreiheit 12 12.01.2006 14:59
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Variable Werte einer Funktion übergeben bendigo PHP Tipps 2005-2 4 03.08.2005 17:33
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
Funktion() anwendung -bitte um Hilfe PHP Tipps 2004-2 17 08.12.2004 11:58
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript function beliebig viele parameter, javascript beliebig viele werte übergeben, werteprüfung php, php zu viele funktion, php $this wird nur einmal übergeben in funktion, funktion beliebig viele variablen übergeben, function mit 2 werten übergeben, php beliebig viele variablen zu funktion, php funktion beliebig viele variablen übergeben, php funktion beliebig viele variablen, javascript function beliebig viele werte übergeben, eval werte nicht im template übergeben sonder in php datei, php funktionen objekt an funktion uebergeben, javascript beliebig viele werte an funktion übergeben, php function array übergeben, proe wert beliebig ändern, html php funktion mit übergabe wertaufrufen, http://www.php.de/php-tipps-2005/16642-erledigt-wie-kann-ich-beliebig-viele-werte-eine-funktion-uebergeben.html, javascript function maximum parameter length, php funktionen daten übergeben

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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.