Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Call to a member function
Forum PHP.pl > Forum > Przedszkole
chronos
Witajcie,
mam taki kod:
  1. function load() {
  2. require 'go.php';
  3. $go = new Go();
  4. }
  5. echo load();
  6. echo $go->start();



  1. class Go {
  2. function __construct() {
  3. echo 'Witaj w klasie GO! <br/>';
  4. }
  5.  
  6. public function start() {
  7. echo 'Metoda start';
  8. }
  9. }


jednak to nie mogę wywołać funkcji start,
Fatal error: Call to a member function start() on a non-object - to ta linia: echo $go->start();

Proszę o pomoc.
chronos
próbuje z tym global, ale nadal nic:
  1. public function load($name) {
  2. global $name;
  3. require $name.'.php';
  4. $name_load = ucfirst($name);
  5. ${$name} = new $name_load();
  6. }


$go->start();
Proszę o pomoc.
nospor
facepalmxd.gif

Robisz global po $name, ktore na marginesie mowiac przekazujesz jako parametr funkcji, a odwolujesz sie do $go... niby jakim cudem ma ci dzialac?
chronos
Chciałbym uzyskać efekt jak we frameworkach czyli przekazuje do funkcji load nazwę klasy do załadowania a później mogę się do niej odwoływać po przez podaną nazwę w funkcji. dlatego później odwołuję się do $go - bo go to nazwa klasy.
gr56
W takim wypadku powinieneś zwrócić obiekt z funkcji za pomocą return.

PS: Teraz ładowanie klas robi się troche inaczej: http://php.net/manual/en/language.oop5.autoload.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.