Mailinglisten-Archive |
Mirko Fenrich wrote:
> Dabei entstand bei m ir die Frage ob ich innerhalb einer Klasse auf eine
> andere Klasse zugreifen kann und wie das geht. In meinem konkreten Fall
> möchte ich durch eine neue Klasse auf die phplib zugreifen. Über einen Link
> (wo ich nachlesen kann) wäre ich total dankbar.
Kein Link, aber laß das mal laufen und versuche es zu verstehen:
<?php
class foo {
function foo() {
print "Zugriff auf die Klasse 'foo' gelungen<br>\n";
}
function footalks() {
print "Ich bin ein Objekt der Klasse 'foo'<br>\n";
}
}
class bar {
function bar($f="") {
$this->f = $f;
print "Zugriff auf die Klasse 'bar' gelunden<br>\n";
}
var $f = "";
function accessfoo1() {
$f = new foo();
}
function accessfoo2() {
$this->f = new foo();
$this->f->footalks();
}
function accessfoo3() {
$this->f->footalks();
}
}
// Zugriff auf foo über eine lokale
// Variable in bar->accessfoo1()
$b = new bar;
$b->accessfoo1();
echo "<hr>";
// Zugriff auf foo über eine im Objekt
// befindliche Instanzvariable
$b->accessfoo2();
echo "<hr>";
// Lösung, Übergabe des Objekt $f vom Typ foo an
// das Objeckt $b vom Typ bar, Zugriff über Instanzvariable
$f = new foo();
$b = new bar($f);
$b->accessfoo3();
?>
In PHP4 gibt es noch "statische" Klassen, deren Methoden ohne
einen new auf gerufen werden dürfen. Die PHPLIB befindet sich
derzeit im Umbau und wird dies bald unterstützen.
Ulf
--
Ulf Wendel
NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany
Fon: +49 431 386435 00 -- Fax: +49 431 386435 99
php::bar PHP Wiki - Listenarchive