[Php-avanzado] Que hace esto?
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Lun Mar 22 11:15:03 ART 2010
Hola Mario,
El lun, 22-03-2010 a las 06:12 -0700, Mario Gomez Cassou escribió:
> Que ahce este codigo?:
>
> $numChars = ord($this->data[$spos]) | (ord($this->data[$spos+1]) << 8);
Hace un manejo a nivel de bits, desplazándolos a la izquierda si se
cumple la condición, lo que significa que multiplica por 2 el valor a
cada paso:
http://www.php.net/manual/en/language.operators.bitwise.php
> esta dentro de bucle que si itera lo suficiente recorriendo un archivo salta el error:
>
> Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 16 bytes) in /var/www/reader.php on line 257
>
> el "|" es un OR inclusivo, pero no de que la juega el "<< 8"
No me extraña el error en un bucle largo, ya que esto debería desbordar
la variable más tarde o más temprano...
Si estudiás lo que hace la porción de código, posiblemente puedas
reemplazarla usando count_chars() y alguna cuenta sobre el vector.
> Gracias!
Por nada!
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado