Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] Accepteert geen functies meer

Pagina: 1
Acties:

Onderwerpen


  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:46

Toppe

Oké ✅

Topicstarter
Hallo,

Ik ben momenteel bezig met het maken van een systeem voor op het werk.
Nu loop ik alleen tegen één ding aan, het aanmaken van een functie binnen een class.

Als ik een nieuwe functie aanmaak word deze niet geaccepteerd door PHP. De volgende fout melding komt er uit rollen:

PHP:
1
Fatal error: Call to undefined method reparatie::GetList() in /home//domains//public_html/reparatie/zoeken.php on line 4


Als ik een bestaande functie wil gebruiken gebeurt dit zonder problemen en werkt dit perfect. Zodra ik deze bestaande functie kopieer en verander naar FunctieNaam1 (Dus er een 1 achter zet) krijg ik weer de bovenstaande error te zien, als ik de één weg haal is het probleem weer opgelost.

Ik wil heel simpel een nieuwe functie aanmaken, maar wat ik ook doe, ik krijg een fout melding halen.

Zelfs met een super simpele functie krijg ik steeds een fout:
PHP:
1
2
3
function Dezebestaatzekerwetenniet($input){
return $input;
}


Kan iemand mij weer even op weg helpen?

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • dev10
  • Registratie: April 2005
  • Laatst online: 24-11 15:06
Hoe roep je de functie aan? Staat de functie in een apart bestand en wordt dat geincludet?

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:46

Toppe

Oké ✅

Topicstarter
Ja, de functie word in de zelfde class en het zelfde bestand aangemaakt.

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 16:15
Als je functies aan wil roepen vanuit een class, dan gebruik je (afhankelijk van het type) meestal $this->functienaam, of self::functienaam. Misschien dat dat het probleem oplevert waar je tegenaan loopt?

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 22:39
Je roept hem op dit moment aan met :: of op een class instance? In het eerste geval: lees http://www.php.net/manual....paamayim-nekudotayim.php eens ;)

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:46

Toppe

Oké ✅

Topicstarter
Nope, via een class instance (->)

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • Cartman!
  • Registratie: April 2000
  • Niet online
en wat heb je al aan debugging gedaan dan?

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 22:46

Toppe

Oké ✅

Topicstarter
Debugging lijkt me niet van toepassing, aangezien een werkende functie welke gekopieerd is ook niet werkt.

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


  • IceM
  • Registratie: Juni 2003
  • Laatst online: 24-11 15:39
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

class Simple {

    public function test($arg) {
        printf("function test called with %s\n", $arg);
    }

    public static function testStatic($arg) {
        printf("static function testStatic called with %s\n", $arg);
    }

}

$simple = new Simple();

printf("Checking method Simple::test: %s\n", method_exists($simple, 'test') ? 'bestaat' : 'bestaat niet');
printf("Checking static method Simple::testStatic: %s\n", method_exists('Simple', 'testStatic') ? 'bestaat' : 'bestaat niet');

$simple->test('argument');
Simple::testStatic('argument');


php <bestand.php> zou het volgende moeten tonen:
Checking method Simple::test: bestaat
Checking static method Simple::testStatic: bestaat
function test called with argument
static function testStatic called with argument
Wanneer dat niet het geval is, is er wat mis met je installatie en heeft het weinig met programmeren te maken. Als de testcase wel goed werkt dan is er iets mis met je code, en zonder testcase van jou kant waarin het mis gaat is er weinig over te zeggen wat er exact mis gaat.

O-)

...


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Toppe schreef op maandag 28 mei 2012 @ 12:46:
Debugging lijkt me niet van toepassing, aangezien een werkende functie welke gekopieerd is ook niet werkt.
Dus je hebt niets geprobeerd, wilt niet voldoende relevante code delen en je bent er van overtuigd dat de code moet werken. Excuses dat we even dachten dat je geholpen wou worden...

Plaats een wat meer relevante code, dwz laat het aanmaken van de instance en de methode aanroep zelf eens zien.

{signature}


  • mithras
  • Registratie: Maart 2003
  • Niet online
Toppe schreef op maandag 28 mei 2012 @ 12:46:
Debugging lijkt me niet van toepassing, aangezien een werkende functie welke gekopieerd is ook niet werkt.
De vraag was niet of je debugging hebt aanstaan, maar wat je zelf al hebt geprobeerd. Wat heb je proberen te debuggen dat het "niet lukt"?

Meestal strip je je code zoveel mogelijk dat je een geïsoleerde testcase overhoudt waarin de problemen nog steeds bestaan. Zo'n testcase kan je uiteindelijk ook delen met anderen (bijvoorbeeld hier op GoT). Volgens jouw verhaal zou je bijvoorbeeld hier al een probleem mee moeten krijgen (erg onwaarschijnlijk, maar goed):

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Test
{
  public function testMe()
  {
  }

  public function testMe1()
  {
  }
}

$obj = new Test;
$obj->testMe();
$obj->testMe1();

Dit zou je een testcase kunnen noemen omdat het tot de essentie is gestript en jij kennelijk bij zo'n dergelijke klasse wel testMe() kan aanroepen maar niet testMe1()?
offtopic:
bestaad :X
Pagina: 1