php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.01.2012, 13:24  
Erfahrener Benutzer
 
Registriert seit: 03.10.2008
Beiträge: 227
thiagojonas zeigte ein beschämendes Verhalten in der Vergangenheit
Standard [Erledigt] Innerhalb einer Klassen auf Attribut anderer Klasse zugreifen

Hallo liebe Freunde,

ich habe folgendes Problem:
Ich habe in Klasse1 ein public Attribut $id, dem ich einen Wert zuweise aus der DB. Diese ID kann ich dann, nachdem ich eine neues Objekt erzeugt habe aufrufen und via echo anzeigen lassen.

So ich möchte jetzt aber, dass diese public $id in der Klasse2 verwendet werden kann, bzw. ich möchte von der Klasse2 darauf zugreifen können.

Deshalb die get_id Methode. Das problem ist aber, dass mir nichts angezeigt wird. Wenn ich aber statt $this->id z.B. "test" returne, wird es ausgegeben.

D.h. das obwohl ich die $id schon vorher via erstellung eines Objektes anzeige, wird es in der Klasse 2 nicht angezeigt.

Könnte mir jemand sagen, wie ich da am besten herangehen soll? Vielen Dank.

PHP-Code:
class klasse1
{    
    
// Attribut
    
public $id;
    
    public function 
__construct(//Parameter)
    
{
        
// Verbindung mit Datenbank
        
        
if($query)
        {
            while(
$row mysql_fetch_array($query))
            {    
                
// Parameter aus Tabelle laden und in Variablen speichern
                
$this->id $row['id'];
              
            } 
        }
        
      }
    
    
//Get ID
    
    
public function get_id()
    {
        return 
$this->id;

    }    
    
// ende 
PHP-Code:
class klasse2 extends klasse1
{        
    public function 
__construct(//Parameter)
    
{
       echo 
parent::get_id();
        
      }
    
// ende 

Geändert von thiagojonas (19.01.2012 um 13:30 Uhr).
thiagojonas ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.01.2012, 13:40  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Du überschreibst ja in der Ableitung den Konstruktor. Demnach liefert get_id() auch nichts, da zum Zeitpunkt der Initialisierung noch nichts dafür hinterlegt ist.
__________________
dsentker ist offline   Mit Zitat antworten
Alt 19.01.2012, 13:42  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Wenn du nen Getter für diese Klassenvariable hast, dann kannst du die auch auf private stellen.

Hast du in der get-Methode mal echo $this->id; gemacht? Error-Reporting ist eingeschaltet?
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 19.01.2012, 13:44  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ah ja, auch gerae erst gesehen.
Code:
parent::__construct();
fehlt.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 19.01.2012, 13:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Um es nochmal deutlich zu sagen: Wenn B eine Klasse A erweitert (ableitet), greift B nicht auf die Property von A zu, sondern auf seine eigene. Deshalb muss B auch den Constructor-Code von A ausführen, wo die Property gesetzt wird. Vererbung bedeutet Vererbung von Code (Funktionalität), nicht von Werten.

Ein echter Zugriff auf A's Eigenschaften würde geschehen, wenn Du in einer Instanz von B eine Instanz von A verarbeitest. Das ennt sich dann Aggregation : http://de.wikipedia.org/wiki/Klassen...nd_Aggregation
__________________
--
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 offline   Mit Zitat antworten
Alt 19.01.2012, 17:07  
Erfahrener Benutzer
 
Registriert seit: 03.10.2008
Beiträge: 227
thiagojonas zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Vielen Dank für die Antworten. Das bedeutet also,
dass ich die atributte alle in der Klasse1 initialisiere und jeweils eine getter und setter methode schreibe. und in klasse 2 kann ich dann die atrribute von klasse1 abfragen bzw. setzen? Und es gibt nur einen konstruktor? In der elternklasse?
thiagojonas ist offline   Mit Zitat antworten
Alt 19.01.2012, 17:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Das kommt auf den Verwendungszweck an.
Zitat:
und jeweils eine getter und setter methode schreibe
für das Problem nicht relevant
Zitat:
und in klasse 2 kann ich dann die atrribute von klasse1 abfragen bzw. setzen?
Ich habe das Gefühl, DU hast meinen Beitrag überhaupt nicht gelesen.
__________________
--
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 offline   Mit Zitat antworten
Alt 19.01.2012, 17:26  
Erfahrener Benutzer
 
Registriert seit: 03.10.2008
Beiträge: 227
thiagojonas zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Ah...doch. Danke, habe es erstmal verwechselt. Vielen Dank für die Hilfe
thiagojonas ist offline   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
[Erledigt] Variable Variablen in Klassen nina PHP-Fortgeschrittene 16 21.06.2011 09:48
[Erledigt] variable übergeben innerhalb eine schleife Uranus PHP Einsteiger 8 17.06.2011 15:14
[Erledigt] klassen variable setzen Ohrwurm83 PHP Tipps 2009 14 16.09.2009 10:30
Modulare Programmierung - Klassen nur in Klassen Gültig iXtends Software-Design 6 26.05.2009 15:37
Class kann auf Variable nicht zugreifen... go1denboy PHP Tipps 2008 4 27.06.2008 15:40
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
Variable setzen außerhalb von der Klasse phpbeginner PHP Tipps 2007 13 28.03.2007 14:09
Auf static Methode von variabler Klasse zugreifen Riks PHP Tipps 2007 11 16.03.2007 15:08
[Erledigt] Zugriff auf eine Klasse innerhalb einer Funktion -> Fehle PHP-Fortgeschrittene 23 05.02.2006 13:02
aus einer funktion auf funktion anderer klasse zugreifen seejay PHP Tipps 2006 3 05.01.2006 10:37
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
error: Zugriff auf protected variable aus extendet klasse PHP Tipps 2004 3 26.09.2004 23:39
Klassenobjet in anderer Klasse benutzen inu PHP Tipps 2004 6 19.09.2004 10:58
Auf Variable in Funktion zugreifen PHP Tipps 2004 5 02.08.2004 23:57
Variable einer Klasse PHP Tipps 2004 2 15.06.2004 16:26


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