Zugriff auf MemberVar in einer Klasse über eine function geht nicht

HL1234

Grünschnabel
Hallo,
folgendes Problem: ich habe eine Klasse die gibt über eine eigene member funktion
test() inhalte von variablen aus:

class A
{
$x = 15;
function Test()
{
echo "\$x ist $this->x";
}
}

objA = new A;
objA->Test();

DAS FUNKTIONIERT!
"$x ist 15"

wenn ich jetzt eine Funktion benutzte in einer anderen datei und nach dem Erzeugen des Obj. Test aufrufe erhalte ich nur:

"$x ist "

WAS MACHE ICH DA FALSCH? Warum geht das so nicht?
include "datei.class.php";
fnFtk()
{
objA = new A;
objA->Test();

}

//-----------------
fnFkt();

"$x ist " ?


Für jede Hilfe Danke!
 
Wundert mich dass es überhaupt ohne Fehlermeldung abgeht. Ich hatte hier erstmal einige Fehler zu korrigieren. Das fängt dabei an, dass das Wort "function" für die Deklaration der Funktion fehlte.

Hier mal die korrigierten Skripte:

die Include-Datei:
Code:
<?php
class A
{
    var $x = 15;
    function Test()
    {
    echo "\$x ist $this->x";
    }
}
?>

Die Test-Datei:
Code:
<?php
include 'datei.class.php';

fnFtk();

function fnFtk()
{
    $objA = new A;
    $objA->Test();
}
?>

Ausgabe bei mir:
Code:
$x ist 15

Funktioniert also prinzipiell. Du solltest allerdings auf die Syntax achten und vor Allem die Fehlermeldungen in PHP einschalten ;-)

Gruß

Marian
 
Hallo Marian,
Danke für Deine Antwort. Stimmt das mit der 'function' war ein schreibfehler ich hab den Code gerade mal hier rein gepinnt weil ich nicht weiter kam. Original ist weit aus umfangreicher mit einigen includes und das war es dann auch.

Ich hab den Fehler jetzt heraus gefunden:
includes der beiden Dateien (Klasse und für Funktion, bzw 3. Aufruf der Funktion ) sind in unterschiedlichen Verzeichnissen. Wenn ich die Funktion benutze stimm die include Angabe in der Klasse nicht mehr, da ich dann in einem übergeordneten Verzeichnis bin.
Die Klasse habe ich natürilich in ihrem Verzeichnis entwicklt und getest und da ging es auch. Nur, mit dem Aufruf der Funktion von einem übergeordneten Verzeichnis aus, stimmt die include angabe in der Klasse nicht mehr.

Tja, verschachtelte includes sollte man möglichst nicht benutzen :-( Ich bauch aber die zwei Verzeichnisse.

_________________
Danke!
Harald
 
Zurück