phpbar.de logo

Mailinglisten-Archive

[php] =?ISO-8859-1?Q?Re=3A_=5Bphp=5D_OOP_Ve_rst=E4ndn=3F_=3D_=3D=3FI? = =?ISO-8859-1?Q?SO-8859-1=3FQ=3Fis?=

[php] =?ISO-8859-1?Q?Re=3A_=5Bphp=5D_OOP_Ve_rst=E4ndn=3F_=3D_=3D=3FI? = =?ISO-8859-1?Q?SO-8859-1=3FQ=3Fis?=

Gloss Mathias php_(at)_phpcenter.de
Wed, 7 Aug 2002 15:46:16 +0200


Aloha,

> Von: 	Mailanbecker[SMTP:mailanbecker_(at)_gmx.net]
>
> > $this ist keine Variable, sondern ein "Hilfsdings", das auf
> > die aktuelle Klasse zeigt.
>
> Also würde in meinem Fall auch mehr Speicher anfallen, da die gesamt
> Klasse
> in $Obj geladen wird?
>
Das hat nichts miteinander zu tun.

Bsp:

class Auto {
  var $sFarbe = 'rot';

  function SetzeFarbe($sFarbe){
    if ( $sFarbe == '' ) {
      $this->Fehler('Keine Farbe angegeben');
    } else {
      $this->sFarbe = $sFarbe;
    }
  }

  function Fehler($sText){
    echo 'Folgender Fehler ist aufgetreten: '.$sText;
  }
}

$oAuto = new Auto;
echo $oAuto->sFarbe;  # rot
$oAuto->SetzeFarbe('schwarz');
echo $oAuto->sFarbe;  # schwarz
$oAuto->SetzeFarbe(); # liefert Fehler

Mit $this werden !IN! einer Klasse die Klasseneigenen Methoden
aufgerufen (Fehler, SetzeFarbe) ODER die Klasseneigenen Variablen
angesprochen. ($sFarbe).

Von !AUSSEN! werden die Methoden/Variablen über die Objecthandles
(hier $oAuto) angesprochen...

> Ich hab $Obj bis jetzt auch nur als Pointer gesehen, also als Zeiger der
> auf
> der jeweiligen Klasse liegt.
>
Naja das triffts eher :)

> $CONF ist nen array mit allen Configurationen und für den globalen
> übergang
> habe ich ebenfalls einen Pointer drauf zeigen lassen.
>
Ah .... ok. Dann muss aber $Obj bei dir irgendwo auch noch
erzeugt werden .... das fehlte etwas .... und Tipp:

$Obj->CONF = $aConf;  # hätte erklärt, daß da ein Array ankommt ;)


Grüße, Mathias


php::bar PHP Wiki   -   Listenarchive