Variables PHP: la guía definitiva

 

Variables PHP: la guía definitiva

Las variables son importantes en todos los lenguajes de programación, y no es diferente en PHP. Las variables brindan a los desarrolladores la posibilidad de almacenar temporalmente datos para usarlos en scripts PHP (en el caso de PHP, esto sucede en la memoria del servidor). Esta guía trata sobre trabajar con variables en PHP.

Por cierto, si recién está comenzando con PHP, le recomiendo leer esta guía primero: Aprender PHP: Comenzar a usar PHP.

Comentar, comentar, comentar!

Antes de comenzar, me gustaría presentarles los comentarios de PHP. Como desarrollador, debe intentar comentar su código de tal manera que la lógica de su código se explique bien; este es uno de los buenos hábitos que deben tener los codificadores.

Variables PHP: la guía definitivaSin siquiera mirar el código PHP, sabes de lo que es capaz esta función con solo leer los comentarios (en verde).

¿Cómo funcionan los comentarios?

Una forma de colocar un comentario en una línea se logra con dos barras diagonales (//) que precede al comentario.

<?php
// This is a comment
echo 'Hello World!'; //This is another comment
?>

Otra forma de hacer comentarios es a través de un bloque de comentarios que está envuelto por /* */. Desea utilizar un bloque de comentarios cuando su comentario tiene más de unas pocas líneas.

<?php
/*
By using a comment block, you are
capable of putting comments
on multiple lines.
*/
echo 'Hello World!';
?>

Otra forma, que es raramente usado hoy en día – está usando un símbolo de almohadilla (#) delante del comentario.

<?php
echo 'I'm using comments!'; # An alternative syntax of commenting
?>

PHP y variables

Una variable de PHP siempre comienza con un signo de dólar ($Esto es solo para que el analizador de PHP sepa que estamos tratando con variables. Siempre debe intentar dar a sus variables nombres que sean lo más descriptivos posible.

Caracteres alfanuméricos (es decir A-Z, a-z, y 0-9) y guiones bajos (_) están permitidos, pero el nombre no puede comenzar con un dígito. Si su variable contiene otros caracteres o si comienza con un dígito, producirá un error de análisis.

<?php
// Valid
$player_name;
// Valid
$playerName;
// Valid
$_player_name;
// Not valid - has a space
$player name;
// Not valid - starts with a number
$1st;
// Valid
$player2nd;
?>

Un nombre de variable sin que un signo de dólar$) al principio, o un nombre de variable que contiene caracteres no válidos probablemente resultará en un error de análisis.

PHP aborta el analizador en la línea 4 debido a un error de análisis.

Asignar un valor a una variable

¡Una variable es inútil si no le asigna datos! La asignación de datos a una variable se hace así:

<?php
$player_name = 'Freddy';
?>

Ahora tenemos una variable llamada $player_name que contiene un valor de cadena de «Freddy».

Impresión de variables

Podemos imprimir el valor de una variable usando echo.

<?php
$player_name="Freddy";
echo $player_name;
?>

Si desea combinar una variable con una cadena estática, puede usar un punto (.) para unir sus cadenas, así:

<?php
$player_name="Freddy";
// Prints out "Hello Freddy!"
echo 'Hello ' . $player_name . '!';
?>

Alternativamente, puede usar comillas, que analiza la cadena de la variable.

<?php
$player_name="Freddy";

// Prints out 'Hello Freddy'!
echo "Hello $player_name!"; 
// Prints out 'Hello $player_name!' because it uses single quotes
// thus $player_name is treated as a literal string
echo 'Hello $player_name!';
?>

Aquí hay algunos ejemplos más de impresión de variables, solo para martillar el concepto.

<?php
$player_name="Freddy";
$player_friend = 'Tim';

// Prints out 'Hello Freddy! Is Tim still your friend?'
echo 'Hello ' . $player_name . '! Is ' . $player_friend . ' still your friend?';

$color="Blue";
$animal="Lion";
$text="I saw a " . $color . ' ' . $animal . ' today when I was walking with '
         . $player_friend . ' and ' . $player_name;

// Prints out 'I saw a Blue Lion today when I was walking with Tim and Freddy'.
echo $text;
?>

Acerca de los tipos de datos PHP

En la mayoría de los lenguajes de programación, el tipo de datos de una variable solo se puede definir una vez. En PHP, este no es el caso. Si está trabajando con PHP, no puede definir el tipo de variable. Se define implícitamente, lo que significa que el tipo de datos se establecerá automáticamente según el tipo de datos que asigne a la variable. Esto puede sonar confuso ahora, pero más adelante tendrá sentido, así que tengan paciencia conmigo.

Tipo de datos nulo

El tipo de datos nulo se refiere a «nada». Cada variable que no tenga un valor asignado será una variable de tipo nulo. Nulo es exactamente 0 bytes. Asignar null a una variable eliminará el contenido de esa variable de la memoria.

<?php
// A variable without any value assigned to it, equals null
$player_name;
// Now $player_name is no longer null
$player_name="Freddy";
// $player_name is null again, and the string 'Freddy' has
// been deleted from memory
$player_name = null;
// $player_name is not null again
$player_name="Freddy";

// unset() is a PHP function that is the same as doing $player_name = null;
unset($player_name);
?>

Cambio de tipo de datos

¿Viste lo que acabamos de hacer allí? Saltamos de un tipo de datos nulo a un tipo de datos de cadena y luego, de repente, la variable volvió a ser nula. ¡No hay magia ni hocus pocus involucrados, lo prometo!

PHP es vagamente mecanografiado, lo que significa que una variable no está restringida a un solo tipo de datos. Esto significa que puede cambiar cualquier variable entre todos los tipos de datos disponibles sin tener que hacer nada. Esto también se conoce como malabares de tipos.

Sin embargo, debo señalar que el cambio de tipo es costoso en recursos y puede introducir puntos potenciales de errores lógicos en sus scripts y, por lo tanto, siempre debe intentar mantener sus variables restringidas a un tipo de datos si es posible.

Utilice tipo de malabarismo solo cuando realmente lo necesitas.

Tipo de datos bool

Bool es la abreviatura de booleano. Es el tipo de datos más pequeño. Un booleano solo puede ser uno de dos valores: verdadero o falso.

<?php
$new_items = true; // There are new items available...
$has_permission = false; // Too bad you don't have the permission to read them!
?>

Nota: Nulo, verdadero y falso son palabras que no deben usarse en una asignación de variable con apóstrofos si desea mantener su funcionalidad. Consulte el bloque de código a continuación para obtener una aclaración.

<?php

$new_items = true;

// This is not a Boolean! Just a string.
$has_permission = 'false';

// The $new_items variable doesn't exist now
$new_items = null;

// The $has_permission variable still exists, only the value has been changed 
// from 'false' to the string value of 'null'
$has_permission = 'null';
?>

Acerca de var_dump ()

Es hora de hablar sobre el var_dump() PHP funciona por un segundo, ya que le ayudará enormemente a depurar y aprender más sobre sus variables. Esta función le muestra detalles sobre sus variables, incluido el contenido de sus variables.

var_dump() es una función que aceptará cualquier expresión. Después de procesar la (s) expresión (s), el resultado y la información adicional sobre el resultado de la expresión se imprimirán en la pantalla.

Para que todo sea legible, es una buena idea cerrar siempre una llamada a var_dump() Entre los <pre> Etiqueta HTML. Esto no es necesario, pero es algo que mejora la legibilidad de la salida.

Consejo: Pasar varios parámetros a una función se realiza separándolos con una coma (,).

<?php
echo '<pre>';

$new_items = true;
// This is a string spelling the word 'false', it's not being treated
// as a Boolean
$has_permission = 'false';

// Make a call to var_dump() with the two variables above as the parameters
var_dump($new_items, $has_permission);

echo '<br>';$new_items = null;
// This is a string spelling the word 'null', it's not being processed
// as the data type null

$has_permission = 'null';

// We've changed the variables, so let's do a check again
var_dump($new_items, $has_permission);

echo '</pre>';
?>

La siguiente imagen muestra una captura de pantalla de la salida de var_dump(). Observe que le dice el tipo de datos, el tamaño y el valor de ambas variables. Por ejemplo, $has_permission = 'false'; da como resultado un var_dump de string(5) "false", lo que significa que es un tipo de datos de cadena, que hay 5 caracteres y que el valor de la cadena es ‘falso’.

Justo como esperábamos.

Como se puede ver, var_dump() es una función muy útil. En el contexto de esta guía de PHP, sirve perfectamente para descubrir cómo funciona el malabarismo de tipos, pero encontrará que es una gran herramienta para depurar sus scripts PHP.

Tipo de datos int

Un int, que es la abreviatura de entero, es simplemente un número. El tamaño máximo de un número entero depende de la plataforma (lo que significa que depende del sistema operativo y la configuración de su servidor web), aunque un valor máximo de aproximadamente 2 mil millones es típico. Si el servidor es una plataforma de 64 bits, el valor máximo es de alrededor de 9e18.

Los enteros siempre se utilizan para almacenar valores numéricos. Debido a que son numéricos, puede realizar operaciones matemáticas con ellos.

<?php
$number = 10;
// Take the current value and multiply by 10. $number is now 100.
$number = $number * 10;
// Same as above, but shorter. Now, $number is 1000.
$number *= 10;
// Add 5 to $number. $number is now 1005.
$number += 5;
// Same operation as above, just different syntax. $number is now 1010.
$number = $number + 5;
//Subtract 5. We are back at 1005.
$number -= 5;
// Subtract 5 again. We are now at 1000.
$number = $number - 5;
// Prints out 1000
echo $number;
// Still 100, we can assign the value using scientific notation
$number = 1e3;
// You are allowed to use binary. This equal to 37377 in decimal system.
$number = 0111001;
// An octal (equals 2 in decimal system)
$number = 0287;
// Negative numbers are allowed
$number = -2;
// Hexadecimal value (this is equal to 546 in decimal system)
$number = 0x222; 
?>

Tipo de datos flotantes

A diferencia de los enteros, que deben ser números enteros, los puntos flotantes pueden tener decimales como 12.3 o 6051.32179.

Examine y pruebe el siguiente bloque de código para ver cómo funcionan las variables flotantes:

<?php
echo '<pre>';
$number = 10;
var_dump($number);
echo '<br />';
// Divide 10 by 6.
$number /= 6;
var_dump($number);
echo '</pre>';
?>

Nuestro número entero cambió a un tipo de datos flotante dividiéndolo por 6.

Un flotante tiene más precisión que un número entero, pero requiere más espacio de almacenamiento que un número entero. El tamaño máximo de un flotante es (como un número entero) dependiente de la plataforma. El valor máximo suele ser 1.8e308.

Imprecisión de punto flotante

El sistema binario (es decir, unos y ceros) no se creó para números de coma flotante. Es por eso que las fracciones decimales simples como 0.4 y 0.8 no se pueden convertir a sus contrapartes binarias sin una pequeña pérdida de precisión. Tenga esto en cuenta cuando esté desarrollando una aplicación web que tenga que lidiar con muchos números de coma flotante.

Tipo de datos de cadena

Si hay un tipo de datos con el que ya debería estar familiarizado, es la cadena porque ya lo ha visto en acción anteriormente. El tipo de datos de cadena es el tipo de datos más grande que PHP conoce. El tamaño máximo es igual al tamaño de la memoria del servidor. Siempre debe tener cuidado de no exceder este tamaño (lo cual es difícil de hacer a menos que intente excederlo intencionalmente, pero aún así, debe tener cuidado).

Ya cubrimos la combinación de cadenas de texto regulares con variables y también sabe cuál es la diferencia entre usar un apsótropo (por ejemplo, ‘cadena’) versus una cita (por ejemplo, «cadena»), que se cubrió en la guía Aprender PHP: Comenzar a usar PHP .

De lo que no hemos hablado son personajes fugados. Recuerda cómo nos encargamos de nuestra sangría con n y t en la guía «Introducción»? Estos se denominan avances de línea y se clasifican como caracteres de escape.

Lea, analice y pruebe el siguiente bloque de código para comprender los caracteres de escape en las variables de cadena. Además, consulte esta tabla para ver una lista de caracteres de escape en PHP.

<?php
echo "tYou know what the output will be of this string.";

echo "nrThe special character '\r' is new though.";

echo "n'\t' equals a horizontal tab, but '\v' will result in a vertical tab.";

echo "n'\f' will output a form feed.";

echo "nWhat if you want to use a regular dollar-sign ($) in a string? We escape it! Like this: '\$'.";

echo "nSame thing for a double-quote ("): '\"'"; 
?>

Tipo Casting

Lo último que vamos a cubrir en esta guía de variables de PHP es la conversión de tipos. La conversión de tipos es el nombre del proceso en el que un tipo de datos específico se transforma en otro (por ejemplo, cambiar de un tipo de datos de cadena a un tipo de datos enteros).

Algunos tipos de datos tienen su propia función que se encarga de convertir otros tipos de datos. Puede convertir casi todos los tipos de datos a otro tipo prependiendo los datos que se convertirán por el nombre del tipo de datos (p. Ej. (bool) $myString). Vaya, eso suena complicado, pero lea los comentarios en el siguiente bloque de código y todo se aclarará.

<?php
echo '<pre>';
// Casting null to any other data type will result in the default value for 
// that data type (false, 0, 0 and an empty string)

// We start by converting an integer to null. You can replace the integer
// with any other data type.
$number = 15;

// Try using var_dump on $number to see what it comes up with.
$number = (unset) $number;
echo '<p />';

/* bool */// Any other number besides 0 will be casted to true
$number_a = 0; $number_b = 3;
// false, true
var_dump((bool) $number_a, (bool) $number_b);
echo '<br />';
// When an empty string is casted to a Boolean, the result will be 'false'
$string_a="";
// This value will also result in 'false', any other string 
// will result in 'true'
$string_b = '0';
// This will be casted to 'true'
$string_c="Hello World!";
// false, false, true
var_dump((bool) $string_a, (bool) $string_b, (bool) $string_c);
echo '<p />';

/* int */
// This will result in 1
$bool_a = true;
// ...and this will become 0.
$bool_b = false;
var_dump((int) $bool_a, (int) $bool_b);
echo '<p />';
// Floats casted to integers will lose their decimal precision and if they
// are bigger than an integer, the new integer will be the 
// maximal value. If you are casting a string to an int, as much integer data
// as possible will be casted
$string_a="13 posts"; 
// Only the first two digits will be used
$string_b =  '45e2 liter';
//13 and 45000
var_dump((int) $string_a, (int) $string_b);

/* float */
// Casting strings and Booleans to a float works the same way as with integers.
// Casting an integer to a float will only change the data type. Nothing else
// will happen

echo '<p />';

/* string */
// Casting a bool to a string will result in '1' on true and '0' on false
// Integers and floats will be converted to their text counterparts
$number = 500;
// Will result in a string contain the characters '500'
var_dump((string) $number);
?>

Conclusión

En esta guía, aprendimos todo lo posible sobre cómo comentar su código, variables, tipos de variables y conversión de variables. Si tiene alguna pregunta, no dude en plantearla en los comentarios.

contenido relacionado

Deja un comentario