Call to a member function on a non-object

Status
Niet open voor verdere reacties.

blackeagle67

Gebruiker
Lid geworden
13 okt 2009
Berichten
158
Hier is onze error te vinden:
http://www.worldofrevenge.mine.nu/4th/news.php

Velen zijn hier misschien al mee bekend maar ik nog niet :confused:

We zijn op het moment bezig een oophp georienteerde site te maken en zijn dus tegen dit probleem aangelopen.

We proberen een methode aan te roepen van de ene class in de andere.
Hier zijn 3 bestanden bij betrokken. Met dezelfde naam als class.

main:
include "classes/databases/database.php";
$database = new database();

database:
public function GetBackgroundURL()
{
}

functions:
$this->background_url = $this->background->GetBackgroundURL();

In main worden alle classes ge-include en direct geinstantieerd. Hierbij hoeft een pagina alleen maar main te includen en heeft direct alle instanties+methodes en objecten.

database haalt voor ons de afbeelding op uit de database.

en functions plaatst dit in een object dat we dan gaan echo-en op de pagina's.

Nou wil ik dus dat ik de instantie kan aanroepen in de functions class. Weten jullie hoe dit moet. Ik kom hier namelijk niet uit. Alternatieven worden ook gewaardeerd. :thumb:

Thx in advance
 
oh sorry,

Op het moment zij we weer bezig geweest en hebben het weer veranderd.

Dit:
$this->background_url = $this->background->GetBackgroundURL();
is weer:
$this->background_url = $database->GetBackgroundURL();

Maar $this->background moest de instantie van $database voorstellen.
Alleen dus op een andere manier.
Nu hebben we dit weer even terug veranderd
 
Erg lastig om te beoordelen zonder het volledige plaatje te begrijpen.

Als de class Database geen functie GetBackgroundURL() heeft gaat $database-> GetBackgroundURL(); ook nooit werken.

Alleen wanneer je bij de Database een andere class extend (wat onlogisch is wanneer het niets met een database te maken heeft) zou het kunnen werken.

Maar een functie als GetBackgroundURL() lijkt mij nou niet iets voor een database-class.

Eerder iets van een template class.
 
Nou we hebben de oplossing gevonden :P

Wat we hebben gedaan is de instantie van de database als parameter meegegeven aan de instantie van main en deze parameter in een propertie gezet en met deze propertie hebben we de methode aangeroepen.

Dit was voor ons de oplossing, een zogeheten algemene associatie.

Bedankt voor de moeite.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan