Autor | Zpráva | ||
---|---|---|---|
Danqo Profil |
#1 · Zasláno: 26. 7. 2010, 13:20:03 · Upravil/a: Danqo
Zdravím mám problém súvisiaci s pretypvaním zo stringu na integer.
Shared memory funkcia mi vráti string ktorý by mal byť číselný od 1 až do 109 s tým, že ak nadobudne hodnotu 109 vráti opäť na 1 avšak tieto čísla mi berie ako string po prvý krát keď spustím skript $last_sended sa inkrementuje až po 109 avšak potom je problém že už nezačne počítať od 1 ale až od 10. Myslím si, že je to spôosobené tým, že shared memory pridáva špeciáne znaky na koniec stringu ak nie je načítaný presne určený počet znakov. Celkovo problém s pretypovaním nemám keďže začne inkrementovať ale zdá sa, akoby to bolo len čiastočné pretypovanie. A tým, že shared memory vracia string som si istý, strlen vypisuje 3, čo je maximálny počet znakov v reťazci ktorý mám nastavený pre shared memory, skúšal som to oddeliť aj cez substr no nepomohlo. $id_last_sended = 8010; $last_sended = 10; $last_sended_open = shmop_open($id_last_sended, "c", 0644, 3); $last_sended = shmop_read($last_sended_open, 0,3); //$last_sended = substr($last_sended,0,0); //if(is_string($last_sended)) return substr($last_sended,0,-1).strlen($last_sended); settype($last_sended, "integer"); $last_sended<109 ? $last_sended++ : $last_sended=1; $last_sended_new = shmop_write($last_sended_open, $last_sended, 0); return("Packet was successfully sent".$last_sended); Veľká vďaka za pomoc |
||
_es Profil |
#2 · Zasláno: 26. 7. 2010, 13:35:02
Danqo:
Vyskúšaj pretypovanie (int)hodnota .
|
||
Jan Tvrdík Profil |
#3 · Zasláno: 26. 7. 2010, 15:14:19 · Upravil/a: Jan Tvrdík
$id_last_sended = 8010; $last_sended = 10; $last_sended_open = shmop_open($id_last_sended, "c", 0644, 3); $last_sended = (int) shmop_read($last_sended_open, 0,3); // settype($last_sended, "integer"); bude fungovat taky, ale tohle je kratší $last_sended < 109 ? $last_sended++ : $last_sended=1; $last_sended = sprintf("%03d", $last_sended); $last_sended_new = shmop_write($last_sended_open, $last_sended, 0); return("Packet was successfully sent" . $last_sended); |
||
Nox Profil |
#4 · Zasláno: 26. 7. 2010, 15:16:31
nebo
intval() |
||
Časová prodleva: 14 let
|
0