zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Mit einer einzigen Methode auf alle Klassenvariablen zugreifen, aber wie?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 06.01.2008, 01:46
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 24.09.2003
Beiträge: 243
braindead befindet sich auf einem aufstrebenden Ast
Standard Mit einer einzigen Methode auf alle Klassenvariablen zugreifen, aber wie?

Hi,
gibt es eine Möglichkeit dynamich auf Variablen zuzugreifen, also auf Variablen deren Name erst zur Skriptlaufzeit bekannt ist? Also sowas:
PHP-Code:
$this->value 
würde ich gerne so aufrufen:
PHP-Code:
$var 'value';
$this->$var 
geht das irgentwie, ich will mir nämlich eine Klassenmethode erstellen die auf alle Klassenvariablen zugreifen kann. Da die Variablen aus Performancegründen nicht alle gefüllt sind, sollen sie eben wenn benötigt gefüllt werden (per Datenbankaufruf) und dafür will ich eine Methode verwenden die aufgerufen wird wenn ich den Wert der Variablen haben möchte, diese gibt den Wert der Variablen dann zurück wenn sie bereits gefüllt ist und wenn nicht dann füllt sie die Variable erst selbst.
Da der obige Codeschnipsel aber so warscheinlich nicht funktioniert bräuchte ich da eine Alternative, hat vieleicht jemand einen Vorschlag?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 06.01.2008, 01:52
Benutzerbild von ArcVieh
//
XHTMLforum-Kenner
 
Registriert seit: 19.12.2006
Ort: Gütersloh
Beiträge: 1.844
ArcVieh sorgt für eine eindrucksvolle AtmosphäreArcVieh sorgt für eine eindrucksvolle Atmosphäre
Standard

Vllt. hilft dir das hier weiter.
__________________
CSS-FAQ beantwortet die meisten Fragen | Retro coding gegen Divitis | Code validieren & posten für Hilfe
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 06.01.2008, 02:15
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 24.09.2003
Beiträge: 243
braindead befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich das richtig interpretiere müsste eigentlich das was ich übersprünglich vorhatte funktionieren. Vieleicht sollte ich es doch mal testen.
Mit Zitat antworten
  #4 (permalink)  
Alt 06.01.2008, 03:14
Neuer Benutzer
neuer user
 
Registriert seit: 22.06.2005
Beiträge: 19
znay befindet sich auf einem aufstrebenden Ast
Standard

Dieser Codeschnipsel
PHP-Code:
<?php
class iterate{
    public 
$test1 "Test 1";
    public 
$test2 "Test 2";
    private 
$test3 "Test 3";
    public 
$test4 "Test 4";
}

$instance = new iterate();
foreach (
$instance as $key => $value) {
    echo 
$key." => ".$value."<br />\n";
}
?>
erzeugt folgende Ausgabe:
Code:
test1 => Test 1
test2 => Test 2
test4 => Test 4
So kriegst du Variablennamen und Inhalt aller Variabeln der Instanz einer Klasse und kannst damit arbeiten

EDIT:
$this->$key funktioniert da natürlich für die Variablen.

Geändert von znay (06.01.2008 um 03:17 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 06.01.2008, 12:05
Benutzerbild von kampfgnom
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 22.11.2006
Ort: Radebeul
Beiträge: 1.808
kampfgnom befindet sich auf einem aufstrebenden Ast
Standard

das is aber nicht ganz sauber!

würd dir eher die __get und __set methoden empfehlen!
__________________
Meine Spielwiese: http://blog.kanedo.net
Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt
Für open Source Liebhaber: open Com

Auch ich Zwitschere als @kanedo
Mit Zitat antworten
  #6 (permalink)  
Alt 06.01.2008, 12:54
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 07.04.2007
Beiträge: 311
ct2oo4 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von braindead Beitrag anzeigen
[...]
PHP-Code:
$this->value 
würde ich gerne so aufrufen:
PHP-Code:
$var 'value';
$this->$var 
[...]
$this->var

Zitat:
[...]EDIT:
$this->$key funktioniert da natürlich für die Variablen.
$this->key

Das zweite $-Zeichen muss man weglassen.
__________________
Mit Zitat antworten
  #7 (permalink)  
Alt 06.01.2008, 13:44
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Zitat:
Zitat von ct2oo4 Beitrag anzeigen
Das zweite $-Zeichen muss man weglassen.
Nein.

PHP-Code:
$this->var 
greift auf die Klassenvariable "var" zu.

PHP-Code:
$this->$var 
greift auf eine Klassenvariable zu, dessen Name durch den Wert von $var definiert ist.

Beides ist möglich, wobei ich sowas wie "$this->$var" genauso vermeiden würde, wie "$$var".
Kampfgnom hat schon einen guten Hinweis gegeben.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[SimpleXML] Per Variable auf Knoten zugreifen GrayFox Serveradministration und serverseitige Scripte 4 11.03.2011 08:59
Companion Column Methode - Spalten gleicher Höhe IChao Ressourcen 2 10.07.2007 12:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:22 Uhr.