[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