Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Typ operatorów arytmetycznych w PHP
Michael2318
post 30.12.2012, 16:04:33
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Michael2318 30.12.2012, 16:12:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
klocu
post 30.12.2012, 16:33:14
Post #2





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
gr56
post 30.12.2012, 17:16:48
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 15
Dołączył: 19.11.2011

Ostrzeżenie: (0%)
-----


Musisz każdy opertator zaprogramować osobno
  1. if($zmienna == "+") $res = $pierwsza+$druga;
  2. if($zmienna == "-") $res = $pierwsza-$druga
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:12