[PHP] Rekenen met vars in het bijzonder het - of + teken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedennacht iedereen zal wel liggen te :Z maar hehe ik ben de nachtwaker >:) dat terzijde ehmmzz ik ben bezig met een script waarmee je dingen kan uitrekenen nu wil ik berekenen wat 10 - 5 is (hehe weet ik wel maar ik wil dat hij het echoot das namelijk 7 >:) :P 5 natuurlijk |:( )

Oke ik heb de volgende code.

PHP:
1
2
3
4
5
6
$getal = "10";
$bereken = "-5";
$rekenfactor = $bereken{0}; // eerste karakter uit de var halen (-)
$rekengetal = $bereken{1};  // tweede karakter uit de var halen (5)

echo "$getal"."$rekenfactor"."$rekengetal";


nu krijg ik een error.. nu weet ik niet hoe ik deze kan oplossen
nu krijg ik alleen de berekening te zien (dus niet de uitkomst)
ik weet dat er simpelere manieren zijn maar zou het graag zo willen doen dmv een variable :) weet iemand hoe ik dat misschien zou kunenn doen (als deze manier niet kanwerken) ik heb naar mijn gevoel het gewoon goed gescript.

Bedankt :)

[ Voor 20% gewijzigd door Verwijderd op 29-11-2002 01:20 . Reden: hehehe was iets vergeten :'( ]


Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Kijk eens naar de functie eval op php.net

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 29 November 2002 @ 01:18:
PHP:
1
2
3
4
5
6
$getal = "10";
$bereken = "-5";
$rekenfactor = $bereken{0}; // eerste karakter uit de var halen (-)
$rekengetal = $bereken{1};  // tweede karakter uit de var halen (5)

echo "$getal"."$rekenfactor"."$rekengetal";

1) Je stopt je getallen in Strings?
2) Je gebruikt ze als string ( je concateneert, wat een string operatie is)
3) Zo'n +/- teken noemt men vaak een operator (binaire operator om precies te zijn), en zo'n getal wat je er mee bewerkt een operand.
4) Waarom plak je de boel aan elkaar en gooi je er niet gewoon een plus teken tussen? Immers dan doe je automatisch aftrekken is gelijk aan een negatief getal optellen

PHP:
1
2
3
4
$operand1 = 10; 
$operand2 = -5;

echo $operand1 + $operand2;
Orphix schreef op 29 November 2002 @ 01:23:
Kijk eens naar de functie eval op php.net
Da's wel de oplossing die ik het laaste zou kiezen. Zoals je boven ziet, is het een stuk mooier op te lossen :)

Acties:
  • 0 Henk 'm!

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 20-08 20:35
Verwijderd schreef op 29 November 2002 @ 01:18:
PHP:
1
2
3
4
5
6
$getal = "10";
$bereken = "-5";
$rekenfactor = $bereken{0}; // eerste karakter uit de var halen (-)
$rekengetal = $bereken{1};  // tweede karakter uit de var halen (5)

echo "$getal"."$rekenfactor"."$rekengetal";
Daarnaast is het ook totaal onzinnig om variabele tussen quotes te plaatsen. Zoals al reeds mede gedeeld voor de getallen.

[ Voor 9% gewijzigd door martinvw op 29-11-2002 11:36 ]


Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Glimi schreef op 29 november 2002 @ 08:50:
Da's wel de oplossing die ik het laaste zou kiezen. Zoals je boven ziet, is het een stuk mooier op te lossen :)
Ja sorry ik had de vraag iets anders gelezen (iemand voert in textbox een berekening in en wil dat uitrekenen) met in het achterhoofd een iets hoger niveau :z

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Orphix schreef op 29 November 2002 @ 11:49:
Ja sorry ik had de vraag iets anders gelezen (iemand voert in textbox een berekening in en wil dat uitrekenen) met in het achterhoofd een iets hoger niveau :z


Waarom verontschuldiging :) is niet nodig. Ik probeer je ook maar te overtuigen van mijn evangelie ( psst, intresse in Java? ;) )
Maar alles wat je met eval kan oplossen kan ook ander :) Als het uit een tekstbox komt is het inderdaad de makkelijkste weg, maar ook de linkste imho :)
Je kunt beter de boel al zelf omzetten in de types die je moet hebben (ints/floats dit keer) ipv het uit een string te laten komen en hopen dat er toevallig een getal in staat :)

Acties:
  • 0 Henk 'm!

Verwijderd

als het vanuit een textfield komt kun je het casten naar een int dmv (int)$_POST['named_index'] of via de intval functie: intval($_POST['named_index'] )

[ Voor 13% gewijzigd door Verwijderd op 29-11-2002 12:32 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Glimi schreef op 29 November 2002 @ 12:09:

[...]

Waarom verontschuldiging :) is niet nodig. Ik probeer je ook maar te overtuigen van mijn evangelie ( psst, intresse in Java? ;) )
Nou je hebt me overtuigd hoor ;)
En ik vond het al zo omslachtig om eerst m'n hele php script in een variabele te stoppen en vervolgens er eval op los te laten (8>
Maar alles wat je met eval kan oplossen kan ook ander :) Als het uit een tekstbox komt is het inderdaad de makkelijkste weg, maar ook de linkste imho :)
Tja ach met wat regexps eroverheen kan je er redelijk safe van zijn dat het enkel een berekening is. En dan zie ik geen probleem in eval die je het moeilijke parsen van een berekening bespaart.
Je kunt beter de boel al zelf omzetten in de types die je moet hebben (ints/floats dit keer) ipv het uit een string te laten komen en hopen dat er toevallig een getal in staat :)
je sais..
Pagina: 1