Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Typ operatorów arytmetycznych w PHP
Forum PHP.pl > Forum > Przedszkole
Michael2318
zwykła cyfra 1 to int. Czym zatem są operatory typu +/-/* questionmark.gif Mam string (nie do końca taki, ale podaje przykład):

  1. $zmienna = '+';


jak go zamienić ze stringu na coś co spowoduje, że takie coś:

  1. $pierwsza = '1';
  2. $aritmetic = '+';
  3. $druga = '2';
  4.  
  5. $res = $pierwsza.$aritmetic.$druga;


Zwróci mi 3 ? Cale wyrażenie zamienione na intval() nie działa jak trzeba bo wtedy znak arymetyczny przyjmuje 0. Jesli zamienie to na boolean to + przyjmie true, reszta false. Przekopałem wszystkie typy danych w PHP i żaden jak dla mnie nie pasuje do tego typu wyrażeń...
Próbowałem tez swoją tablice zapisać zamiast tak:

  1. $tablica = array(
  2. 1 => '+',
  3. 2 => '-',
  4. 3 => '*');


to tak:

  1. $tablica = array(
  2. 1 => +,
  3. 2 => -,
  4. 3 => *);


Ale to zwraca błędy, dlatego te znaki mam jako string zapisane.
klocu
Zrobienie czegoś takiego uda się takim sposobem:
  1. $op = '5-1';
  2. eval("\$a = $op;");
  3. echo $a;

Ale nie jest on polecany, bo zawsze znajdzie się inne bezpieczniejsze rozwiązanie.

  1. $res = $pierwsza.$aritmetic.$druga;

A tu dokonywałeś złączenia trzech stringów i tyle. Wynik tego scalenia można upchnąć do eval'a przedstawionego powyżej i wtedy zadziała.
gr56
Musisz każdy opertator zaprogramować osobno
  1. if($zmienna == "+") $res = $pierwsza+$druga;
  2. if($zmienna == "-") $res = $pierwsza-$druga
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.