Voor een website wil ik controleren of een functie bestaat, dit om te voorkomen dat er een error ontstaat maar gewoon een eigen 404.
Bij deze site maak een gebruik van een seo geschikte url Bijvoorbeeld: www.example.com/product/artikel
Binnen mijn systeem explode ik de url met de /. Waarbij de product dan een functie is.
Onderstaand een voorbeeldcode.
Dit is het resultaat
Voorbeeld 1 werkt niet, terwijl voorbeeld 2 wel volgens verwachting werkt. Nu wordt voorbeeld 1 binnen een class aangeroepen, en ik vermoedt dat hier ook ergens het probleem zit, maar geen idee hoe ik dit moet oplossen.
Overigens als ik ga googlen op is_callable, krijg ik allemaal voorbeelden zonder dat er gebruik gemaakt wordt van een class. Wel wordt ik iedere keer ook gewezen op de functie functions_exists en method_exists, maar dat is volgens mij niet een methoden die ik nodig heb.
Bij deze site maak een gebruik van een seo geschikte url Bijvoorbeeld: www.example.com/product/artikel
Binnen mijn systeem explode ik de url met de /. Waarbij de product dan een functie is.
Onderstaand een voorbeeldcode.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| <?php // Voorbeeld 1 new voorbeeld(); class voorbeeld { function __construct(){ if(is_callable('test')){ echo 'De functie test bestaat!<br>'; } else { echo 'De functien test bestaat niet!<br>'; } } function test(){ echo 'Functie test'; } } // Voorbeeld 2 if(is_callable('test2')){ echo 'De functie test2 bestaat!<br>'; } else { echo 'De functien test2 bestaat niet!<br>'; } function test2(){ echo 'Functie test2'; } ?> |
Dit is het resultaat
code:
1
2
| De functien test2 bestaat niet! De functie test2 bestaat! |
Voorbeeld 1 werkt niet, terwijl voorbeeld 2 wel volgens verwachting werkt. Nu wordt voorbeeld 1 binnen een class aangeroepen, en ik vermoedt dat hier ook ergens het probleem zit, maar geen idee hoe ik dit moet oplossen.
Overigens als ik ga googlen op is_callable, krijg ik allemaal voorbeelden zonder dat er gebruik gemaakt wordt van een class. Wel wordt ik iedere keer ook gewezen op de functie functions_exists en method_exists, maar dat is volgens mij niet een methoden die ik nodig heb.