Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.
Een nieuw onderwerp moet..:
- uiteraard voldoen aan de algemene voorwaarden
- niet passen in de gewone supportfora
- interessante zijn voor het overgrote deel van onze gebruikers
- een neutrale of positieve ondertoon hebben
- anders zijn dan bestaande onderwerpen
-
ElbertF
- Berichten: 5803
- Lid geworden op: 12 okt 2004, 08:34
-
Contacteer:
Bericht
door ElbertF » 07 feb 2006, 12:26
Is er een PHP-functie (als in JavaScript) om een som in een string uit te rekenen? Zoiets als:
print
math('1+1');
output: 2

-
WebSiteNet
- Berichten: 6524
- Lid geworden op: 20 okt 2003, 16:56
- Locatie: Wieringerwerf
-
Contacteer:
Bericht
door WebSiteNet » 07 feb 2006, 16:35
Je kan proberen om met
eval() iets voor elkaar te krijgen of een functie uit
math te halen.
-
ElbertF
- Berichten: 5803
- Lid geworden op: 12 okt 2004, 08:34
-
Contacteer:
Bericht
door ElbertF » 07 feb 2006, 21:40
eval() is denk ik wat ik zoek, ik heb nu alleen geen beschikking over een server..
$formule = '1 + 1';
eval('$uitkomst = ' . $forumule . ';');
print $uitkomst;
Zou dit moeten werken?
Bedankt

-
Paul
- Beheerder

- Berichten: 20315
- Lid geworden op: 23 okt 2003, 11:38
- Locatie: Utrecht
-
Contacteer:
Bericht
door Paul » 07 feb 2006, 21:48
Parse error: syntax error, unexpected ';' in D:\files\test.php(3) : eval()'d code on line 1
Krijg ik dan.
Code: Selecteer alles
<?php
$formule = '1 + 1';
eval('$uitkomst = ' . $formule . ';');
print $uitkomst;
?>
Werkt wel

-
ElbertF
- Berichten: 5803
- Lid geworden op: 12 okt 2004, 08:34
-
Contacteer:
Bericht
door ElbertF » 07 feb 2006, 21:51
Door een spelfoutje in "formule" dus, maar ik ben blij dat het werkt
Nu kan ik wiskunde gebruiken in m'n templates

-
Donny_nl
- Berichten: 463
- Lid geworden op: 27 feb 2004, 13:55
- Locatie: Rotterdam
-
Contacteer:
Bericht
door Donny_nl » 08 feb 2006, 11:59
het kan nog makkelijker:
Code: Selecteer alles
<?php
$uitkomst = 1+1;
print ($uitkomst);
# of
print(1+1);
?>
Geeft allebei 2 als resultaat, je kunt variabelen simpelweg printen, ongeacht het type van de var (string of integer). Of je wilt weten of dit ook goed PHP is kun je error_reporting(E_ALL) erboven zetten. Je zult zien dat er geen fouten zijn en dit dus acceptabel is.
-
Paul
- Beheerder

- Berichten: 20315
- Lid geworden op: 23 okt 2003, 11:38
- Locatie: Utrecht
-
Contacteer:
Bericht
door Paul » 08 feb 2006, 12:18
Print toch echt
, en dat was niet de bedoeling

-
Donny_nl
- Berichten: 463
- Lid geworden op: 27 feb 2004, 13:55
- Locatie: Rotterdam
-
Contacteer:
Bericht
door Donny_nl » 08 feb 2006, 13:41
Er staat toch een duidelijk verschil in jouw scriptje en de mijne.
Jij definieert $var als een string en die print je vervolgens. Dan krijg je als ouput idd de string 1+1. Ik maak een var die 1+1 optelt en de uitkomst print. Verschil zit em in de quotes. Daarmee definieer je een string in dit geval. Zonder quotes 'ziet' PHP dat er een berekening moet worden uitgevoerd.
-
Paul
- Beheerder

- Berichten: 20315
- Lid geworden op: 23 okt 2003, 11:38
- Locatie: Utrecht
-
Contacteer:
Bericht
door Paul » 08 feb 2006, 14:07
Donny_nl schreef:Er staat toch een duidelijk verschil in jouw scriptje en de mijne.
Jij definieert $var als een string en die print je vervolgens. Dan krijg je als ouput idd de string 1+1. Ik maak een var die 1+1 optelt en de uitkomst print. Verschil zit em in de quotes. Daarmee definieer je een string in dit geval. Zonder quotes 'ziet' PHP dat er een berekening moet worden uitgevoerd.
de vraag van spambot is om het als het in een string staat uit te rekenen. En dat kan dus bij jouw oplossing niet.
-
ElbertF
- Berichten: 5803
- Lid geworden op: 12 okt 2004, 08:34
-
Contacteer:
Bericht
door ElbertF » 08 feb 2006, 23:45
Dank je Donny_nl, maar zoals Paulus aangaf heb je de vraag niet helemaal begrepen. eval() maakt het mogelijk formules in templates of bbcode te parsen, bijv:
[math](1 + 2) * 3[/math]
..wordt dan '9'. Ik moet het alleen wel uitwerken om het veilig te houden, anders wordt elke PHP-code uitgevoerd i.p.v. alleen rekenkundige forumules..
