php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.01.2006, 20:12  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard Klasse aus anderer Klasse aus ansprechen

Folgendes Problem: Ich habe mal als Beispiel die folgenden 3 Dateien
geschrieben. Und naja es kommt halt immer das Problem, dass $test2
$test1 nicht kennt. ein global $test1 in der entsprechenden function löst
das Problem. Ist bei größeren Projekten mehr als nur nervend.

Gibts da keine bessere Methode??

Würde mich freuen, wenn mir jemand helfen könnte.

Gruß Chris

PHP-Code:
<?php
require ('test1.class.php');
require (
'test2.class.php');

$test1 = new test1;
$test2 = new test2;

$test2->request();


?>
PHP-Code:
<?php

class test1 {
    private 
$var1;
    function 
test1() {
        
$this->var1 'test';
    }
    function 
get(){
        return 
$this->var1;
    }
}
?>
PHP-Code:
<?php

class test2 {
    private 
$var1;
    function 
test2() {
        
$this->var1 'test2';
    }
    function 
get(){
        return 
$this->var1;
    }
    function 
request(){
        echo 
$test1->get();
    }

}
?>
CC84 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.01.2006, 20:19  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
class test2 {
    private 
$var1;
    private 
$test1;
    
    function 
__construct($t1) {
        
$this->var1 'test2';
        
$this->test1 $t1;
    }

    function 
get(){
        return 
$this->var1;
    }
    
    function 
request() {
        echo 
$this->test1->get();
    }
}

$test1 = new test1;
$test2 = new test2($test1);

$test2->request(); 
 
Alt 16.01.2006, 20:35  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

hm nette idee, wird aber auch auf Dauer anstrengend.

Um das mal zu verdeutlich:
Ich habe ne Webseite und mehrere Klassen u.a.
-Smarty
-mysql
-error
-session

und dann noch immer lokale für einzelne Seite, es ist also nicht klar, was ich dann vorher da alles in den Contructor schreiben muss.

EDIT: Warum bricht das Forum eigentlich nicht um?? Werden hier die Leerzeichen durch ersetzt??

EDIT2: JA werden sie... etwas arg unpraktisch wie ich finde.
CC84 ist offline  
Alt 16.01.2006, 20:52  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von CC84
es ist also nicht klar, was ich dann vorher da alles in den Contructor schreiben muss.
PHP-Code:
<?php
class test2 {
  ...
  private function 
__get($memberName) {
    return 
$GLOBALS[$memberName];
  }   
  ...
}
?>
 
Alt 16.01.2006, 21:00  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

sagst du mir noch kurz, was ich damit mache??

Ich kanns mir grob denken, möchte aber verstehen was ich tue ^^

Ich übergebe vermutlich der Funktion des Objektes1 ein anderes Objekt(nennen wir es mal Objekt2) und diese schreibt in die Varible mit dem Namen des Objektes2 einen Verweis auf Objek2, damit ist Objekt2 nun als $this->Objekt2 addressierbar??

Hm habe gerade Zweifel an meiner Interpretation. Wenn sie richtig sein sollte, was machen die 2 unterstriche vor dem get?

Fragen über Fragen, hoffe man kann mir noch weiter helfen.
CC84 ist offline  
Alt 16.01.2006, 21:03  
Gast
 
Beiträge: n/a
Standard

Wozu willst Du überhaupt Klassen verwenden, wenn Du doch überall alles irgendwie Kreuz und Quer und Kraut und Rüben verwenden willst.
Das ist wirklich nicht der Sinn von objektorientiertem Programmieren; dann kannst Du Dir Klassen auch gleich schenken.
 
Alt 16.01.2006, 21:09  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von CC84
was machen die 2 unterstriche vor dem get?
http://de3.php.net/manual/en/languag...verloading.php
 
Alt 16.01.2006, 21:13  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Darum frage ich ja, wie ich das sinnvoller mache, weil ich das eben auch als ungünstig empfinde.

Es ist ja alles soweit streng voneinander getrennt. Nur es ist nunmal nötig, dass verschiedene Klassen z.B. auf den mysql zugreifen. Bzw. loggs schreiben können.

Vielleicht kann mir ja noch wer helfen.
CC84 ist offline  
Alt 17.01.2006, 04:32  
Gast
 
Beiträge: n/a
Standard

Vielleicht läßt Du die einzelnen Methoden zu viel tun, so dass sie alle alles (logging, Datenbankzugriff, Outputlayer usw) brauchen. Das ist oft ein wirkliches Problem und verhindert dann bspw auch nicht selten den wirkungsvollen Einsatz von Exceptions.
Sorry - darauf gibt es keine "macht man immer so"-Antwort.
 
Alt 17.01.2006, 10:29  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Vielleicht solltes du dich in die OOP nochmal einlesen.

OOP macht eigentlich nur dann Sinn wenn du deinen Programmcode kapseln und dadurch besser verwalten können willst. Zum Beispiel: Du hast eine Klasse für MySQL Abfragen willst aber nun auf eine andere Datenbank zugreifen die keine MySQL DB ist, dann kannst du dir eine 2. Klasse proggen die genau die gleichen public methoden hat und du brauchst dann nur noch bei der Instanzierung aufpassen das du die richtige Klasse nimmst ohne den restlichen Code groß anzufassen.

Wie hier auch schon bereits gesagt sollte die Klasse ansich nicht zuviel übernehmen das mindert meist die Wiederverwendbarkeit (der Hauptzweck schlecht hin warum man Klassen verwendet)
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev 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
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
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
[Erledigt] Instanz einer Klasse in SessionVariable PHP-Fortgeschrittene 2 21.02.2006 00:18
aus einer funktion auf funktion anderer klasse zugreifen seejay PHP Tipps 2006 3 05.01.2006 10:37
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
funktion in klasse ruft funktion in anderer klasse auf phpfortgeschrittener PHP Tipps 2005 6 17.04.2005 17:47
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
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php klassen ansprechen, klasse aus funktion ansprechen php, php klassen anderer php ansprechen, class ansprechen in php

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 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.