Skip to main content

Cómo determinar si nuestro PHP es de 32 o 64 bits

Y por qué sería esto relevante.

Pues es relevante porque en PHP dependiendo de la arquitectura para la que fue compilado nos podemos encontrar con errores extraños difíciles de encontrar.

Esto es debido al tamaño de los enteros en php. Si son de 32 bits nos puede entrar en un entero números hasta el 2.147.483.648 y sin son de 64 bits hasta 9.223.372.036.854.775.808. La diferencia es importante y no tenerlo en cuenta puede implicar el desbordamiento al usar enteros. Los enteros en PHP todos son con signo.

Que el interprete php sea de 32 o 64 bits puede implicar errores en el desarrollo de la aplicación difíciles de encontrar.

En PHP disponemos de una constante del sistema que nos indica como son los enteros para el interprete. Esta variable es PHP_INT_SIZE. La variable contiene el número de bytes necesario para alojar un entero. Ocho en caso de 64 bits y cuatro en caso de 32 bits. El siguiente código muestra un ejemplo de uso.

<?php

function  is64bits()
{

	return (PHP_INT_SIZE == 8);

}

if (is64bits() == true) echo "PHP es de 64 bits";
if (is64bits() == false) echo "PHP es de 32 bits";

El código es muy sencillo y autoexplicativo.