php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.10.2005, 17:42   #1 (permalink)
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.544
PHP-Kenntnisse:
Fortgeschritten
Buhmann
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard Instanz einer Klasse in einer anderen Klasse verwenden

naja vllt verwirrt der Titel etwas, aber das ist auch der Grund, warum mir nichts einfällt, wie man zu dem Thema eine Suchanfrage formulieren könnte.

Ich habe also zwei Klassen
PHP-Code:
<?php
class {
   public function 
hallo() {
      echo 
"Hallo Welt";
   }
}

class 
{
   public 
$referenz;
   function 
__construct(&$a) { 
      
$this->referenz &= $a//Referenz auf die Instanz abspeichern
   
}
   function 
hallo() {
      
$this->referenz->hallo(); //Eine Funktion in der Klasse A aufrufen - hier tritt der Fehler auf
   
}
}

$a = new A();
$b = new B(&$a);
$b->hallo();
?>
Zitat:
Fatal error: Call to a member function hallo() on a non-object in D:\Server\xampp\htdocs\tests\test.php on line 14
Ich will in der Klasse B eine Instanz der Klasse A benutzen, allerdings scheine ich da etwas nicht richtig verstanden zu haben. Zeile 14 ist natürlich
Code:
$this->referenz->hallo();
Wie kann ich also eine bestehende Instanz der Klasse A in der Klasse B benutzen?

Ich habe auf php.net im Manual (http://www.php.net/manual/de/language.oop5.php) nachgeschaut, aber nichts gefunden. Ich kann mir außerdem nicht wirklich vorstellen, wie man eine Suchanfrage zu dem Thema machen könnte (hab vieles ausprobiert, aber nie das gefunden, was ich meinte), habt also bitte Rücksicht mit mir

[EDIT]
So ein dreck - hab den Wald vor lauter Bäumen nicht gesehen. Ich glaube ich habe es mit den Referenzen ein wenig übertrieben, das & in der funktions-parameterliste hat gereicht. Wenn man die anderen löscht, funktioniert das ganze.
Sry für diesen nun sinnlosen post...
Buhmann ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.10.2005, 18:00   #2 (permalink)
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was willst du denn damit machen, wenn die Frage erlaubt ist?
Ich hatte sowas ähnliches mal konstruiert um ein Datenbankobjekt in verschiedenen anderen Objekten zu verwenden bis ich dann mal auf singleton gestossen bin
Zergling-new ist offline   Mit Zitat antworten
Alt 28.10.2005, 18:36   #3 (permalink)
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev
Standard

Schau mal hier rein das ist grad aktuell auch mein Thema ...

http://www.phpfriend.de/forum/ftopic49033.html
HStev ist offline   Mit Zitat antworten
Alt 28.10.2005, 19:05   #4 (permalink)
Benutzer
 
Registriert seit: 10.09.2005
Beiträge: 67
N!cKY
N!cKY eine Nachricht über ICQ schicken
Standard Re: Instanz einer Klasse in einer anderen Klasse verwenden

Zitat:
Zitat von Buhmann
[EDIT]
So ein dreck - hab den Wald vor lauter Bäumen nicht gesehen. Ich glaube ich habe es mit den Referenzen ein wenig übertrieben, das & in der funktions-parameterliste hat gereicht. Wenn man die anderen löscht, funktioniert das ganze.
Sry für diesen nun sinnlosen post...
du brauchst garkein ampersand (&) ! das macht php5 automatisch!
N!cKY ist offline   Mit Zitat antworten
Alt 28.10.2005, 19:58   #5 (permalink)
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.599
imported_Ben
Standard

PHP-Code:
<?php

class Demo {

    
privtate $reference null;

    public function 
__construct($reference) {
        
$this->reference $reference;
    }

    public function 
testMethod() {
         
$this->reference->foo();
    }

}


class 
Bar {

     public function 
foo() {
           echo 
__METHOD__;
     }

}


$obj = new Demo(new Bar());
$obj->testMethod();

?>
Teste es.
__________________
www.schaengelland.de - immer auf dem neuesten Stand!
imported_Ben ist offline   Mit Zitat antworten
Alt 28.10.2005, 20:10   #6 (permalink)
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.818
axo
Standard

und ich würde gleich vorschlagen, wie im verlinkten beispiel, den klassentyp bei der konstruktordeklaration mit anzugeben, dann meckert php bereits beim aufruf der __construct() - methode, wenn man müll übergibt.
damit wäre der fehler an der richtigen stelle aufgefallen
axo ist offline   Mit Zitat antworten
Alt 28.10.2005, 20:41   #7 (permalink)
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.599
imported_Ben
Standard

requires v5.1
__________________
www.schaengelland.de - immer auf dem neuesten Stand!
imported_Ben ist offline   Mit Zitat antworten
Alt 28.10.2005, 23:12   #8 (permalink)
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.818
axo
Standard

Zitat:
Zitat von Ben
requires v5.1
bool(false).

bool(true) für arrays. für objekte war's aber seit php5.0 schon da.
http://us2.php.net/manual/en/languag...ypehinting.php
axo 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] Instanz einer Klasse mit unbekanntem Namen erstellen PHP Tipps 2005 4 06.02.2009 14:39
[Erledigt] Klasse / Funktionen verwenden PHP4ever PHP Tipps 2008 7 27.07.2008 16:24
zentrale Klasse für Datenbankanbindung Crypi PHP Tipps 2008 4 01.07.2008 11:13
HTML Klasse ecomeback PHP Tipps 2008 6 31.08.2007 22:32
will google in anderen ländern verwenden blinkster.de Off-Topic Diskussionen 12 21.07.2006 03:03
methode in klasse aus einer anderen starten GELight PHP Tipps 2006 10 03.06.2006 11:39
gzip klasse verwenden oder nicht? danysahne333 PHP Tipps 2006 3 02.04.2006 13:58
Instanz über mehrere Seiten verwenden? becks123 PHP Tipps 2005-2 3 22.08.2005 10:10
define-Konstante in Klasse verwenden? bicpi PHP-Fortgeschrittene 4 04.08.2005 15:03
Instanz einer Klasse innerhalb einer Funtion verwenden PHP-Fortgeschrittene 9 14.04.2005 21:51
Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
[Erledigt] Instanz bilden innerhalb einer Klasse PHP Tipps 2004 7 11.12.2004 12:58
Klasse holt sich die Klasse PHP-Fortgeschrittene 9 07.10.2004 11:53
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46
Übergabe einer Instanz einer Klasse PHP-Fortgeschrittene 2 24.08.2004 10:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
klasse in anderer klasse verwenden, klassen in anderen klassen nutzen, klasse in klasse verwenden, php klasse neue instanz einer klasse erzeugen, klassen php5.0, klasse in anderer klasse benutzen, php klasse in anderer klasse instanzieren, zentrale php klasse, klasse in klasse php, classe in anderer classe verwenden, php klasse innerhalb einer klasse verwenden, instanz anderer klassen nutzen php, php functionen instancen, php klasse zentrale klasse, bestehende klasse in klasse aufrufen php, klassentypen php, function einer anderen class benutzten, php instanzen anderer klasse in klasse, php klasse in anderer instanzieren, php construct klasse wechseln

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, 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.