No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

0D
6H
27M
18S

Tipos de datos

12/24
Recursos

Un tipo de dato simplemente es una forma de diferenciar los datos que tenemos por medio de su tipo. Por ejemplo, si es un n煤mero, una letra, una palabra, etc.

驴Cu谩les son los tipos de datos?

En programaci贸n podemos tener varios tipos de datos, pero los m谩s conocidos son: num茅ricos, cadenas de caracteres, booleanos y sin valor

Num茅ricos

Representan a los datos de tipo num茅rico. Estos se pueden subdividir en:

  • Integer: n煤mero sin decimales. Por ejemplo: 50; 70; 300.
  • Float: n煤mero con decimales. Por ejemplo: 5.3; 4.7; 8.24.
  • Double: n煤mero con decimales, similar a float, pero con capacidad de almacenar m谩s decimales. Especialmente 煤til para variables o constantes que requieren valores con mayor precisi贸n, por ejemplo el n煤mero PI que tiene muchos decimales.

Cadenas de caracteres

Quiere decir que almacenaremos texto. Tenemos dos grupos:

  • Char: es un solo caracter que puede ser una letra, n煤mero o un s铆mbolo como por ejemplo #, @, %, a o 5.
  • String: es una cadena de m谩s de un caracter como por ejemplo 鈥溌ola, Mundo!鈥

Boolean

Es decir que algo es verdadero (true) o falso (false).

Sin valor

Sirve para expresar que una variable no tiene valor (Null) o que est谩 no definido (Undefined)

El tipado de PHP

PHP tiene tipado d茅bil, es decir, no indicamos el tipo de variable al declararla, ya que puede deducir qu茅 tipo de dato est谩s usando. Veamos un ejemplo:

<?php
$numerito = 0;

var_dump($numerito); // var_dump() lo usamos para ver informaci贸n de la variable, en este caso de $numerito

echo "\n"; // Salto de l铆nea

Y si ejecutamos en la terminal este archivo PHP podremos ver que nos indica que $numerito es de tipo integer (int) con un valor de 0:
PHP infiere que la variable $numerito es de tipo integer

Conversi贸n de tipos autom谩tica

PHP es capaz de convertir un tipo de dato a otro de forma autom谩tica seg煤n el contexto donde se emplee. Por ejemplo, si sumas un n煤mero con un string, PHP evaluar谩 ambos como n煤meros:

<?php
$numerito = "23"; // String
$numerito = $numerito + 2 ; // Le sumamos al String un n煤mero

var_dump($numerito); // var_dump() nos inmprimir谩 informaci贸n

echo "\n"; // Salto de l铆nea

Si ejecutamos nuestro archivo PHP nos indica que $numerito es de tipo integer (int) con un valor de 25, es decir, realiza la conversi贸n internamente de String a int de la cadena "23" y luego le suma el n煤mero 2:

PHP nos indica que ahora la variable $numerito es de tipo integer con un valor de 25

Malas pr谩cticas

Veamos el siguiente caso:

<?php
$papas = "10 papas en el costal";
$cuantas_papas_hay = $papas + 5;

echo $cuantas_papas_hay;

驴Qu茅 crees que har谩 PHP ante esta suma? Pues PHP tiene la capacidad de identificar el primer n煤mero que est谩 dentro de la variable $papas, extraerlo y realizar la suma. Sin embargo, nos mostrar谩 un aviso previamente:

PHP avisa de que encontr贸 un valor no num茅rico en la suma $papas + 5. Luego muestra el resultado de la operaci贸n que es igual a 15

Ya que el n煤mero se encontraba al principio del String, y no en el medio o al final, la operaci贸n fue posible. Esto es debido a que, durante la ejecuci贸n del programa, PHP encontr贸 un n煤mero (10) al inicio que le indic贸 que esa variable ($papas) iba a ser convertida a integer. No obstante, al encontrar una cadena de caracteres ("...papas en el costal") despu茅s de dicho n煤mero es que lanza el mensaje de alerta que vemos previo al resultado de la suma (15) diciendo que durante la operaci贸n encontr贸 valores no num茅ricos ("A non-numeric value encountered...").

Conclusi贸n

PHP es muy permisivo, pero esto nos puede llevar a malas pr谩cticas. Por ello es recomendable monitorear los tipos de datos de tu programa.

Contribuci贸n creada por: Mart铆n 脕lvarez con el aporte de Gregory Hernandez Abad

Aportes 21

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Tipos de datos

En programaci贸n tenemos varios tipos de datos, los m谩s conocidos son:

  • Num茅ricos:
    • Integer: N煤mero sin decimales.
    • Float: N煤mero con punto flotante o punto decimal.
    • Double: Decimales con valores m谩s precisos, con m谩s decimales que float.
  • Cadenas ded caracteres:
    • Chart: Un solo una letra o un simbolo.
    • String: Una cadena de caracteres.
  • Booleanos:
    • Bool: Verdadero o falso.
  • Sin valor:
    • Null: No hay valor.
    • Undefined: Hay una variable pero no tiene ningun valor.

PHP tiene un tipado d茅bil, no necesita que se defina de forma explicita el tipo de dato ya que lo deduce por si mismo.

PHP es capaz de convertir de un tipo a otro de forma autom谩tica. Por ejemplo si sumas un n煤mero con un string PHP evaluar谩 ambos como n煤meros.

/// Aunque 25 sea un string el resultado ser谩 30.
print_r("25"+5);

Hola. Les comparto este repositorio que sirve de gu铆a para el examen final, pues contiene las preguntas que se encuentran en el examen, la justificaci贸n y el video del curso donde se habla sobre eso. Espero y les sea de utilidad 馃槃.
Platzi-Test

Tipos de Datos

Si concatenas un string + un numero, solo va a sumar el numero en el string si el numero esta al inicio, si esta en medio o al final no lo tomar谩.

Y es que en realidad lo que esta tratando es de hacer la suma a pesar de que el numero es un string y no un numero. Si es un string, dir谩: 鈥淥ye, junto a este numero, pusiste un valor que no es numerico, pero como puedo segregar el valor numerico ya que esta al inicio, lo sumar茅鈥.

Por ejemplo:

$bags = "a 4 bags inside";
$how_many = $bags + 4;

echo $how_many; // 4

$bags = "4 bags inside";
$how_many = $bags + 4;

echo $how_many; // 8

$bags = "bags inside: 4";
$how_many = $bags + 4;

echo $how_many; // 4

Comentar en Windows con VSCode.

.
CTRL + K + CTRL + C con estas 2 combinaciones comentamos el c贸digo
.
CTRL + K + CTRL + U con estas 2 combinaciones descomentamos el c贸digo
.

驴C贸mo funciona esto?

.
Una gran parte de los atajos de teclado estan 鈥渁nidados鈥 dentro de otro atajo general, por ponerle un nombre.
.

CTRL + K le avisa a VSCode que 鈥渕eteras un (K)ey-shortcode鈥 (atajo de teclado)

.
Luego de apretar esa combinaci贸n, VSCode se queda esperando la segunda combinaci贸n.
Que en este caso ser铆a la combinaci贸n de 鈥渃omentar鈥.

CTRL + C aplica un ( C )omment, o sea que comenta (pone en comentarios) el c贸digo seleccionado

.
En el caso que quieras 鈥渄escomentar鈥 se utiliza la siguiente combinaci贸n

CTRL + U aplica un (U)ncomment, osea que descomenta (saca de comentarios) el c贸digo seleccionado

<?php

$numero = 19.9;

$numero_text = "45";
$nuevo_numero = $numero_text + 5;

$papas = "tengo 20 papas";
$nuevas_papas = $papas + 5;
echo $nuevas_papas;

echo var_dump($nuevo_numero);
echo var_dump($numero);

Por si alguien le sirve. En linux para comentar un bloque de c贸digo seleccionado presionamos CTRL + SHIFT + A y generar谩 un comentario de tipo bloque y para descomentarlo pulsamos nuevamente CTRL + SHIFT + A

Tipos de Datos:

Se identifican por el tipo de valor que representan o al cual hacen referencia. Se pueden clasificar seg煤n el siguiente cuadro:

Los tipos de datos de n煤meros que nos encontramos pueden ser Enteros o de coma flotante (decimales). Son los n煤meros que nos encontramos en la vida cotidiana.

Los tipos de datos de texto son los que hacen referencia a las cadenas de texto o caracteres que representan un valor al escribir una frase, un nombre o sencillamente cuando se obtienen datos representados por valores alfanum茅ricos.

Los tipos de datos de l贸gica, son los que conocemos como verdadero (true) o falso (false). Los cuales permiten trabajar sobre condiciones y elementos l贸gicos en nuestras aplicaciones.

Datos de Texto
String y Concatenaci贸n.

String: Una cadena de texto, es la uni贸n de diferentes caracteres que funcionan como eslabones que al unirse forman una cadena texto (String) que al unirse forman una frase que al ser concatenados dan el sentido l贸gico de un valor

Se pueden tener distintas cadenas de texto que por separado tienen su propio valor, y al unirse forman un valor y resultado en conjunto. Esto se llama concatenaci贸n.

Char y String.

Char: Es un car谩cter o elemento que compone la cadena de texto, que al unirse o concatenarse con otros Char, forman la cadena de texto.
String: Es la uni贸n o concatenaci贸n de distintos Chars que conforman la cadena de texto.

Datos Num茅ricos:
N煤meros y operaciones b谩sicas.

Enteros (int): Son aquellos que no tienen parte decimal (10, 20, 30)
Decimales (float): Cuando hablamos de n煤meros de coma flotante o float, son aquellos que tienen parte decimal a su lado derecho. (3.1416, 5.8 )
Cortos (Short): Se refieren a que por su tama帽o ocupan 2 bytes
Largos (Long): Se refieren a que por su tama帽o ocupan 8 bytes

Tipos de datos

Los tipos de datos se puede interpretar como etiquetas o denominaciones entregadas a conjuntos de datos distinguibles. Por ejemplo, el superconjunto de los n煤meros, el superconjunto de los caracteres, el conjunto de los valores vac铆os.

Entre los tipos de datos m谩s conocidos en el mundo de la programaci贸n se tienen:

  • Num茅ricos
    • Integer (enteros)
    • Float (reales)
    • Double (reales con precisi贸n)
  • Cadenas de caracteres
    • Char (letra o s铆mbolo)
    • String (cadena de caracteres)
  • Booleanos
    • Bool (usados en la 谩lgebra de Boole)
  • Sin valor
    • Null (sin valor)
    • Undefined (sin inicializaci贸n)

Al ser PHP un lenguaje de programaci贸n de tipado d茅bil el int茅rprete se encargar谩 de inferir en tiempo de ejecuci贸n el tipo de valor asignado a una variable. Asi mismo, PHP es capaz de convertir un tipo de dato a otro, si el nuevo valor asignado es de un tipo diferente al entregado inicialmente, o dependiendo el contexto. Si se intenta realizar una operaci贸n matem谩tica entre un n煤mero guardado como String y otro siendo un Float; el primer valor String ser谩 convertido en un tipo Float para lograr completar la operaci贸n.

A continuaci贸n, un ejemplo de lo antes mencionado:

$var_1 = "50";  // string(2) "50"
$var_2 = 44;  // int(44)
$var_3 = $var_1 + $var_2  // int(94)

Tipado D茅bil en PHP

.
En PHP, el tipado d茅bil se refiere a la capacidad del lenguaje de permitir que una variable cambie de tipo durante la ejecuci贸n del programa. A diferencia de otros lenguajes de programaci贸n que requieren que una variable tenga un tipo de datos espec铆fico y no permiten que cambie de tipo, PHP permite que una variable cambie de tipo en cualquier momento. Por ejemplo, una variable $numero podr铆a comenzar como un n煤mero entero y luego convertirse en una cadena de texto m谩s tarde en el programa.
.

El tipado autom谩tico en PHP

.
Se refiere a la capacidad del lenguaje de convertir autom谩ticamente una variable de un tipo de datos a otro seg煤n sea necesario. Por ejemplo, si se intenta sumar un n煤mero y una cadena de texto en PHP, el lenguaje autom谩ticamente convertir谩 la cadena de texto en un n煤mero antes de realizar la suma. Del mismo modo, al comparar dos valores de tipos diferentes, PHP autom谩ticamente convertir谩 uno de los valores al tipo del otro antes de realizar la comparaci贸n.
.
馃挕 El tipado d茅bil y el tipado autom谩tico en PHP hacen que el lenguaje sea m谩s flexible y f谩cil de usar para los programadores, pero tambi茅n pueden conducir a errores si no se manejan adecuadamente. Es importante tener en cuenta que las variables en PHP pueden cambiar de tipo en cualquier momento y que las conversiones autom谩ticas pueden no siempre producir los resultados esperados, por lo que es importante estar atento a estos comportamientos al programar en PHP.

Si sumo un string y un integer, que sucede?

De acuerdo con la ultimo ejercicio me gustar铆a acotar que para esta situaci贸n php ya no te ayuda a realizar la suma.

// No empieza con el valor de numero
// por eso lanza un error
$papas = 鈥淗ay 10 papas en el costal鈥;
$cuantasPapasHay = $papas + 5;
var_dump($cuantasPapasHay);

si no que te lanza un error

Fatal error: Uncaught TypeError: Unsupported operand types: string + int in

dejando de lado lo que es la flexibilidad,php es muy potente!

PHP es muy permisivo, pero esto nos puede llevar a malas pr谩cticas. Por ello es recomendable monitorear los tipos de datos de tu programa.

Algunas de las malas pr谩cticas en el manejo de tipos de datos en PHP incluyen:

  1. No validar los tipos de datos de entrada: Permitir que los usuarios proporcionen informaci贸n sin validar su tipo de datos puede llevar a errores y problemas de seguridad.
  2. No utilizar conversi贸n de tipos expl铆cita: Confiar en la conversi贸n autom谩tica de tipos puede llevar a resultados inesperados y errores en la l贸gica del programa.
  3. Almacenar datos de un tipo de datos inapropiado: Almacenar datos de un tipo de datos inapropiado puede resultar en un uso ineficiente del almacenamiento y puede dificultar la manipulaci贸n y procesamiento de los datos.
  4. No utilizar los tipos de datos adecuados para expresar la informaci贸n: Utilizar tipos de datos inadecuados para representar la informaci贸n puede resultar en una p茅rdida de precisi贸n y puede dificultar la manipulaci贸n y procesamiento de los datos.
  5. No verificar si una variable est谩 definida antes de usarla: Acceder a una variable no definida puede resultar en un error y puede ser una puerta abierta para ataques.

Aqu铆 casual repasando PHP 馃槂

Integer == N煤mero entero
Float == N煤mero decimal (4 bytes)
Double == N煤mero decimal preciso (8 bytes)
Char == Un car谩cter
String == Cadena de caracteres
Bool == Verdadero o falso (1 o 0)

Hola, si quieren saber el tipo de dato de una variable pueden hacerlo con gettype. Aqu铆 un enlace a la documetaci贸n

PHP es un peligro 鈥 hay que tener mucho cuidado con el c贸digo.

Eres grande Retax, me encanta la sencillez con la que ense帽as los conceptos de la programaci贸n. Un curso totalmente ameno para cualquier persona deseosa de aprender a programar 馃槂

Hola a todos les comparto un codigo que hice con lo que llevamos aprendido

<?php
//clase 12

//Declaracion de un String
$numero_string="32";
echo 'var_dump($numero_string) = ';
var_dump($numero_string);

//Declaracion de un int
$numero_int=33;
echo 'var_dump($numero_int) = ';
var_dump($numero_int);

//Declaracion de un float
$numero_float=33.33;
echo 'var_dump($numero_float) = ';
var_dump($numero_float);

//Conversion de tipos automatica de enteros
$suma_int=$numero_string+$numero_int;
echo 'var_dump($suma_int) = ';
var_dump($suma_int);


//Conversion de tipos automatica de flotantes
$suma_float=$numero_string+$numero_int+$numero_float;
echo 'var_dump($suma_float) = ';
var_dump($suma_float);

//Concatenacion a String de diferentes tipos de datos
$concatenacion=$numero_string." ".$numero_int." ".$numero_float;
echo 'var_dump($concatenacion) = ';
var_dump($concatenacion);

//Suma de tipos, php puede hacer la suma d eun entero y una cadena con un numero, pero es mala practica
$papas = "10 papas en el costal";
$cuantas_papas_hay = $papas + 5;

echo "Total de papas: ".$cuantas_papas_hay."\n";
?>