SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 04.10.2003, 20:01:42
Taube Taube ist offline
Anfänger
 
Registriert seit: Aug 2003
Beiträge: 43
Taube eine Nachricht über ICQ schicken
Klassen und Verbung

Hi, stehe vor einem großen Problem :-7

wenn ich Folgendes habe:

PHP-Code:
class {
 function 
a1() {
   echo 
"Hallo Welt";
 }
}

$a = new a();

class 
{
 function 
b() {
  
$a->a1();
}

new 
b(); 

So, mir wäre lieb wenn er dann als Ergebnis "Hallo Welt" ausspucken würden, tut er aber nicht weil er $a nicht in der function kennt.
So, nun wurde mir gesagt, jaa, mach doch n global $a rein, jo, stimmt, tuts, aber der Haken ist, man muss nun in jeder function von b global $a einsetzen, also schlecht!
So, habe dann mal gedacht mit extends, ist aber auch nicht so die elegante Weise (finde ich)
Was auch noch aktzeptabel wäre wäre:
PHP-Code:
function b() {
 
a::a1();

aber, das geht nur mit methoden, wie kann ich auf diese Weise auf die Variablen zugreifen die in a definiert wurden?

...

ich glaub das wars fürs Erste, möchte auch jeden Fall nicht mit $this->a->a1(); oder so arbeiten müssen sondern direkt durch Variable an die KlassenVariavlen und -Funktionen heran kommen, nur wie?

Bin vorerst mit meinem Latein am Ende, freue mich über jede Idee die mich einen weiteren Schritt in Richtung Lösung bringt!

//EDIT Ich arbeite bereits mit $this, deshalb würde er mir die Variablen überschreiben ... möchte halt ganz gezielt auf andere Klassen, deren Methoden und Variablen zugreifen können. wenn man extends macht ist es ja praktisch nur noch eine einzige Klasse. Bei der Suche finde ich nämlich nichts was mir vorerst weiterhilft

mfg - Taube

Geändert von Taube (04.10.2003 um 20:07:22 Uhr)
Mit Zitat antworten
  #2  
Alt 05.10.2003, 16:46:33
Fuchs Fuchs ist offline
Junior Member
 
Registriert seit: Jul 2003
Beiträge: 182
In php5 kannst du auch statisch auf Eigenschaften zugreifen. Ansonsten empfehle ich dir diese Variante:

class b {
var $a = null;
function b(&$obja) {
$this->a =& $obja;
}

function foo() {
$this->a->MethodOfA();
}

}

$a = new a();

$b =& new b($a);

$b->foo();

//edit:
aggregate >= 4.20
Mit Zitat antworten
  #3  
Alt 05.10.2003, 16:49:43
Taube Taube ist offline
Anfänger
 
Registriert seit: Aug 2003
Beiträge: 43
Taube eine Nachricht über ICQ schicken
Hi, danke für die Antwort, habe vor 10 Minuten aufgegeben und arbeite nun mit

KLASSEN_NAME :: KLASSEN_METHODE

und setze für die Variablen $_GET bzw. _$ENV

funtzt zwar, aber finde das nicht gerade besonders "sauber" bzw. represenativ ;)

thx trotzdem.

mfg - Taube
Mit Zitat antworten
  #4  
Alt 06.10.2003, 16:45:25
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
class b extends a{
$this->a1();
}

hätte auch gereicht.
Mit Zitat antworten
  #5  
Alt 06.10.2003, 20:54:13
Taube Taube ist offline
Anfänger
 
Registriert seit: Aug 2003
Beiträge: 43
Taube eine Nachricht über ICQ schicken
jo, is aba total verwirrend, mache nu a::a1()
funtzt überall ;)
Mit Zitat antworten
  #6  
Alt 06.10.2003, 21:13:52
Fuchs Fuchs ist offline
Junior Member
 
Registriert seit: Jul 2003
Beiträge: 182
Zitat:
Original geschrieben von MiH
class b extends a{
$this->a1();
}

hätte auch gereicht.
Du vererbsta auch alles. Was wenn die Klassen gar nicht miteinander zu tun haben? Es waere nciht nur sinnlos sondern auch falsch dort mit vererbung rumzupfuschen. Statischer Aufruf wuerde ich in so einem Fall auch bevorzugen.
Mit Zitat antworten
  #7  
Alt 06.10.2003, 21:18:13
Taube Taube ist offline
Anfänger
 
Registriert seit: Aug 2003
Beiträge: 43
Taube eine Nachricht über ICQ schicken
:-) genau das, rede ja schließlich nicht von Gemuese und Spinat ;)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:06:21 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt