php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.09.2004, 21:42  
Gast
 
Beiträge: n/a
Standard pass by reference in Klasse

Hallo Leute,

ich versuche eine Variable über pass-by-reference zu ändern, leider klappt das so nicht, keine Ahnung wieso. Es geht um die Zeile:

$this->convert_date2db($_POST[$var][$itemnr]);


Hier mein Code:

Code:
class MyDataObject
{
        function assign_post_values($itemnr="", $dateconversion=false)
        {

                if($itemnr!="")
                {
                       foreach(get_class_vars(get_class($this)) as $var => $value)
                       {
                               if(isset($_POST[$var][$itemnr]))
                               {
                                        //Dateconversion set?
                                        if($dateconversion==true)
                                        {
                                                $this->convert_date2db($_POST[$var][$itemnr]);
                                        }
                                       $this->$var = $_POST[$var][$itemnr];
                               }
                       }
                }
                return;
        }


        function convert_date2db(& $postvar)
        {
                if(ereg("^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$", $postvar, $regs))
                {
                        $postvar =& $regs[3]."-".$regs[2]."-".$regs[1];
                }
                return;
        }
}
Danke für eure Hilfe, Thomas
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.09.2004, 22:27  
Gast
 
Beiträge: n/a
Standard

was genau funktioniert denn nicht? Welche fehler bekommst du usw...
  Mit Zitat antworten
Alt 22.09.2004, 23:26  
Gast
 
Beiträge: n/a
Standard

Superglobals wie $_POST können nicht als normale Variablen verwendet werden - der Inhalt kann nicht geändert werden.


gruß
  Mit Zitat antworten
Alt 22.09.2004, 23:56  
Gast
 
Beiträge: n/a
Standard

@bo: ich bekomme gar keinen Fehler, $_POST[$var][$itemnr] hat den selben wert wie vorher.

@shoryuken: das hab ich bisher aber nicht feststellen können. Wenn ich den Methodenaufruf wie folgt verwende, klappts - aber es gibt eine Meldung das runtime-pass-by-reference veraltet ist und nicht mehr verwendet werden sollte.

$this->convert_date2db(&$_POST[$var][$itemnr]);

der ampersand beim methodenparameter fällt dann weg.

gruß, Thomas
  Mit Zitat antworten
Alt 23.09.2004, 00:29  
Gast
 
Beiträge: n/a
Standard

Hast du schonmal die gegen-Probe gemacht?
PHP-Code:
$temp $_POST[$var][$itemnr];
$this->convert_date2db($temp);

function 
convert_date2db(& $postvar) { 
  if(
ereg("^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$"$postvar$regs)) { 
       
//$postvar =& $regs[3]."-".$regs[2]."-".$regs[1]; 
       // Änderst du in:
       
$postvar $regs[3]."-".$regs[2]."-".$regs[1]; 
  } 
  return; 

Die Zeile musst du ändern weil $postvar sonst einen neuen Zeiger bekommt...

btw:
"Variable Variablen: Superglobale können nicht als Variable Variablen verwendet werden."
http://www.php-luegt.net
  Mit Zitat antworten
Alt 23.09.2004, 10:43  
Gast
 
Beiträge: n/a
Standard

nein, noch nicht - werd ich aber ausprobieren.
Danke dir auf jeden Fall für deinen Tip!

Eines müssen wir aber noch ausdiskutieren.

was hat pass-by-reference mit variablen Variablen zu tun? Beziehungsweise verstehe ich den Zusammenhang nicht(ausser das eine variable Variable ein Verweis auf den Wert einer Variablen ist)...

Gruß, Thomas
  Mit Zitat antworten
Alt 24.09.2004, 11:52  
Gast
 
Beiträge: n/a
Standard

habs getestet, funktioniert leider nicht!
Das Datum in $temp hat danach immer noch das deutsche Format
  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
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
MySQL - Klasse: Wie da mysql_close benutzen Igäl PHP Tipps 2006 5 01.10.2006 23:09
Eine Klasse mehrere Dateien sn00py PHP Tipps 2006 6 08.05.2006 11:40
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Klasenname einer nicht instanziierten Klasse DerDesian PHP Tipps 2007 9 30.11.2005 13:13
Instanz einer Klasse in einer anderen Klasse verwenden Buhmann PHP-Fortgeschrittene 7 28.10.2005 23:12
[Erledigt] Führerschein für Klasse A+B.. Preis OK??? Off-Topic Diskussionen 20 13.07.2005 18:44
Rückgabewert auf einer Klasse anders als in der Klasse micbur PHP Tipps 2005-2 6 10.06.2005 15:06
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Klasse holt sich die Klasse PHP-Fortgeschrittene 9 07.10.2004 11:53
[Erledigt] Brauche Hilfe bei meiner ersten Klasse PHP-Fortgeschrittene 9 24.09.2004 17:09
Klassenobjet in anderer Klasse benutzen inu PHP Tipps 2004 6 19.09.2004 10:58
[Erledigt] Probleme beim PHP5 kompilieren / zlib fehler? Server, Hosting und Workstations 4 03.09.2004 15:39
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:01 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.