php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.12.2008, 01:30  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Das Problem (und vermutlich auch die Lösung) wäre spannender, wenn wir wüssten, was da eigentlich passieren soll. Also welche Daten da aus welchem Grund an welcher Stelle wirklich benötigt werden.
David ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 04.12.2008, 07:51  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Ganz einfach: Ihm fehlt das Zugriffsobjekt. Die Methoden sind nicht statisch.

@Salkin: Ich schätze, das ist ihm schon klar.

@bw: Die Referenz wird ja nicht weiter verarbeitet, sie wird ja nur zugewiesen. Und wenn sie verarbeitet wird (bspw. in print_r) lotet PHP die Schleifen aus. Ich glaube irgendwo habe ich mal gelesen, dass das nicht immer klappt (war m.E. bei nem var_export oder so)...
jap, das war mir alles klar, aber trotzdem danke
das PHP die schleifen verhindert ist eben auch das was ich vermute.

Zitat:
Zitat von Manko10 Beitrag anzeigen
Ich habe ihn jetzt aber so verstanden, dass die Übergabe des Objektes selbst kein Problem ist. Er will nur nicht jede Eigenschaft einzeln vergeben und das muss er bei Übergabe des Objekts ja auch nicht.
Genauso ist es. Meine Frage war jetzt eigentlich nur ob - und wenn ja warum - es zu Problemen kommen kann wenn ich das Objekt als Refrenz übergebe.

Zitat:
Zitat von David Beitrag anzeigen
Das Problem (und vermutlich auch die Lösung) wäre spannender, wenn wir wüssten, was da eigentlich passieren soll. Also welche Daten da aus welchem Grund an welcher Stelle wirklich benötigt werden.
Naja, habs ja oben schonmal kurz angerissen. Habe eine Klasse HTMLForm die eben ein HTML-Formular erstellt. Diese hat jetzt ein Array mit Objekten vom Typ HTMLFormField (eine weitere Klasse). Nun benötige ich in HTMLFormField aber z.B. den Namen des Formulars zu dem das Feld gehört oder auch ob das Formular über POST oder GET gesendet wird (um einen eventuell vom User eingegebenen Wert auslesen zu können). Und deshalb brauche ich in HTMLFormField eben Daten zum Formular zu dem dieses Feld gehört. Zugegeben, einfach einige Parameter an HTMLFormField zu übergeben wäre zwar einfacher, allerdings kommt mir das so ... ungeschickt gelöst vor.

mfg
BlackWolf ist offline  
Alt 04.12.2008, 11:45  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich finde das verständlich. Zumal das Objekt tausendmal nützlicher ist, als eine Liste von Parametern. Schon was zukünftige Weiterentwicklung betrifft. Im konkreten Fall könnte bspw. ein invalides Feld das Form auf invalid schalten oder eine Meldung in einem vom Form verwalteten Messagestack ablegen. Etc pp.

Hatte vor kurzem einen ähnlichen Fall, in dem ich in einer verschachtelten Baumstruktur auf den jeweiligen Elternknoten zugreifen wollte. Hat auch mit ner Objektreferenz geklappt. print_r und Co geben dann erfreulicherweise nur *Rekursion* aus.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 04.12.2008, 17:16  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Den Referenzierungsoperator kannst du dir darüberhinaus auch wirklich sparen, da in PHP generell Referenzen auf Objekte übergeben werden. Um eine Kopie zu erstellen, musst du explizit den clone-Operator verwenden.
Das lässt sich auch beweisen:
PHP-Code:
$a = new Xyz();
$b $a;

if (
$a === $b) {
    print 
'Dasselbe Objekt';
} else {
    print 
'Nicht dasselbe Objekt';

Ohne new oder clone erstellst du keine neue Instanz. Ein anderer Beweis:
PHP-Code:
$a = new Xyz();
$a->1;

// ergibt 1
print $a->b;

func($a);

// ergibt 2
print $a->b;

function 
func($obj)
{
    
$obj->2;

Es handelt sich also um dasselbe Objekt. Performanceprobleme wirst du dadurch also nicht bekommen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 04.12.2008, 17:18  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
da in PHP generell Referenzen auf Objekte übergeben werden
Seit PHP5.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 04.12.2008, 17:19  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ja, Meister!
In PHP 4 gibt es ja aber noch keine richtigen Objekte, da sind das intern nur Arrays.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 04.12.2008, 17:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Wie das denn? Die haben doch auch Methoden?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 04.12.2008, 18:12  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Wie genau das intern gehandhabt wurde, weiß ich nicht. ein gettype($object) ergibt auch object und nicht array, aber dennoch waren Objekte in PHP 4 und 3 primitive Datentypen, die zumindest wie Arrays behandelt wurden.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
 


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
Methode einer anderen Klasse aufrufen Luka PHP-Fortgeschrittene 15 09.11.2008 14:19
Klasse aus externer Klasse aufrufen kostja PHP Tipps 2008 8 07.08.2008 14:13
aufrufende Klasse und Funktion abfragen?? galaxyshadow PHP Tipps 2008 4 10.06.2008 06:43
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
Zugriff auf Objekte anderer Klassen nieselfriem PHP Tipps 2007 7 14.05.2007 12:48
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
[Erledigt] Zugriff auf eine Klasse innerhalb einer Funktion -> Fehle PHP-Fortgeschrittene 23 05.02.2006 13:02
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
Klasse holt sich die Klasse PHP-Fortgeschrittene 9 07.10.2004 11:53
error: Zugriff auf protected variable aus extendet klasse PHP Tipps 2004 3 26.09.2004 23:39
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php variable aufrufende klasse

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