Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

14.06.2006, 15:30

klassen zugriff in php

wenn ich in php versuche in einer klasse eine funktion einer anderen klasse aufzurufen, gibt er immer folgende fehlermeldung aus:

Fatal error: Call to a member function Info() on a non-object in ....

was mach ich falsch?

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

14.06.2006, 15:33

also ich hab zwar keine ahnung von php, aber das hört sich so an als würdest du die methode der klasse statisch aufrufen, also ohne ein Objekt davon erstellt zu haben, was natürlich nur ginge wenn die funktion als static deklariert wäre (gesetzt den fall das gibt es in php)

Phili

unregistriert

3

14.06.2006, 15:41

Jaja, die übliche Preisfrage was der Unterschied zwischen ner Klasse und nem Objekt ist... 8)

john

Alter Hase

Beiträge: 786

Beruf: Schüler

  • Private Nachricht senden

4

14.06.2006, 16:34

Zitat von »"Spik)evil("«

was natürlich nur ginge wenn die funktion als static deklariert wäre (gesetzt den fall das gibt es in php)

Klar gibts das. :D
mfg
john

5

14.06.2006, 17:10

ganz so blöd bin ich auch nicht :)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class test
{
public function testfunktion() {...}
}

$rot = new test;

class test2
{
function __construct()
{
$rot->testfunktion();
}
}

$grün = new test2;


so (jetzt nur zur demonstration) scheint es nicht zu funktionieren
was ist falsch?

NicoH

Treue Seele

Beiträge: 89

Wohnort: Elsterwerda

Beruf: Student Informatik

  • Private Nachricht senden

6

14.06.2006, 17:20

ich als php speziallist hier ein beispiel:

class Template {
var $classname = "Template";
var $root = "";

function Template($root = ".")
{
$this->set_rootdir($root);
}
function set_rootdir($dir)
{
if (!is_dir($dir)) // is_dir() ist woanders untergebracht ;)
{
return false;
}

$this->root = $dir;
return true;
}
}
$template = new Template($root_path . $template_path . $template_name);

$template->set_rootdir("weinichtwo.php");
mfg NicoH

3 Wichtige Regeln des Programmierers:
- Nur in der Nacht programmieren
- Viel Kaffe und kalte Pizza im Vorrat haben (Cola geht auch ;))
- Keine Freundin (sie stört im wichtigsten Augenblick)

NicoH

Treue Seele

Beiträge: 89

Wohnort: Elsterwerda

Beruf: Student Informatik

  • Private Nachricht senden

7

14.06.2006, 17:23

was da falsch ist na dein public funktion.... sowas gibts in php nicht

das deutsch? ist denn php deutsch? function und ohne public
mfg NicoH

3 Wichtige Regeln des Programmierers:
- Nur in der Nacht programmieren
- Viel Kaffe und kalte Pizza im Vorrat haben (Cola geht auch ;))
- Keine Freundin (sie stört im wichtigsten Augenblick)

NicoH

Treue Seele

Beiträge: 89

Wohnort: Elsterwerda

Beruf: Student Informatik

  • Private Nachricht senden

8

14.06.2006, 17:25

function __construct() <--- da ist kein ";"

oh man, schau nochmal bei der theorie nach bevor du mit klassen in php beginnst, das brauchst ey erst wenn templates oder sowas erstelllen willst bzw eine datenbank klasse, aber alles andere geht auch so
mfg NicoH

3 Wichtige Regeln des Programmierers:
- Nur in der Nacht programmieren
- Viel Kaffe und kalte Pizza im Vorrat haben (Cola geht auch ;))
- Keine Freundin (sie stört im wichtigsten Augenblick)

9

14.06.2006, 17:37

also des "funktion" is nur en tippfehler (beim zweiten mal is es ja richtig) :roll:
meines wissens nach gibt es public und private schon in php
und nach dem __construct kommt kein semikolon

ich will bloß wissen wie man innerhalb einer klasse eine funktion aus einer anderen klasse aufgerufen bekommt

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

14.06.2006, 17:43

Klar gibt es public etc. in PHP, aber erst seit Version 5 (oder so).

@NicoH
Objektorientiert programmieren kann doch nicht verkehrt sein, auch wenn's anders geht...!

@Topic
Du greifst auf eine (scheinbar) globale Variable zu. Versuch mal, die Variable per 'global' innerhalb des Konstruktors der aufrufenden Klasse zu deklarieren.

Werbeanzeige