PHP require_once und include - Sichtbarkeit von Objekten

M.E.

Lt. Commander
Registriert
Jan. 2007
Beiträge
1.923
Hallo,

Ich habe folgenden vereinfachten Aufbau an PHP Dateien:
A.php
Code:
[...]
$objekt = new Klassenname();
B.php
Code:
require_once("A.php");
[...]
function test()
{
  return $objekt->methodeX($bla);
}
C.php
Code:
require_once("A.php");
include("B.php");
[...]
test();
Das ganze läuft, nur sobald test(); in C.php aufgerufen wird kommt die Fehlermeldung:
Fatal error: Call to a member function methodeX() on a non-object in /.../B.php

Was mache ich falsch?
Ich habe es auch schon mit einem include statt require_once in B.php probiert, was aber nichts hilft.

MfG
M.E.
 
Zuletzt bearbeitet:
$objekt ist global, ein global $objekt in test() reicht aus. Allerdings ist es doch eher schlecht als recht.
 
Macht nix. Call to a member function methodeX() on a non-object - $objekt ist kein Objekt, da es im globalen Scope deklariert wird. Lass dir mal $objekt ausgeben per var_dump(), da sollte null drin stehen.
 
Warum übergibst du das Objekt der Funktion nicht einfach?

Andererseits könnte man auch sagen: Warum überhaupt noch Funktionen, wenn du schon OOP benutzt.

Funktionieren könnte es mit
PHP:
function test() {
    global $objekt;
    return $objekt->lala();
}

Das ist aber SEHR unschön und widerspricht auch der Definition einer Funktion.
 
Zurück
Oben