Hoe roep je de functie aan? Staat de functie in een apart bestand en wordt dat geincludet?
Ja, de functie word in de zelfde class en het zelfde bestand aangemaakt.
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?
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
Debugging lijkt me niet van toepassing, aangezien een werkende functie welke gekopieerd is ook niet werkt.
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:
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.Checking method Simple::test: bestaat
Checking static method Simple::testStatic: bestaat
function test called with argument
static function testStatic called with argument
...
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...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.
Plaats een wat meer relevante code, dwz laat het aanmaken van de instance en de methode aanroep zelf eens zien.
{signature}
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"?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.
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
bestaad
Pagina: 1