No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué es el casting?

13/24
Recursos

Aportes 29

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Hay un error en la parte final del video, cuando pregunta que tipos de datos hay en la imagen y no se ve ninguna imagen

La imagen del reto no se ve. Les dejo las variables para que puedan hacer el ejercicio:

//Fácil

$nombre = "Carlos";
$apellido = "Gómez";
$edad = 18;
$aprobado = true;

//Medio

$promedio = (8 + 9.5 + 9 + 10 + 8) / 5;
$nombre_completo = $nombre . " " . $apellido;
$presento_examen = (bool) 1;

//Avanzado

$numero_preguntas = 5 + "5";
$numero_respuestas = "5" + 5;
$promedio_maximo = $numero_respuestas / 1.0;
$michis = 3 + "5 michis";

Los siguientes forzados de tipos están permitidos:

(int), (integer) - forzado a integer
(bool), (boolean) - forzado a boolean
(float), (double), (real) - forzado a float
(string) - forzado a string
(array) - forzado a array
(object) - forzado a object
(unset) - forzado a NULL (PHP 5)

Casting

El Casting es la manera de indicar al interprete de PHP para forzar el cambio de un tipo de dato a otro deseado. Se puede acceder a esta utilidad anteponiendo el tipo de dato entre paréntesis antes de un valor o una variable al momento de la asignación o inicialización.

Las siguientes definiciones ayudan a forzar el cambio de tipos en PHP:

  • (array) forzado al tipo arreglo
  • (bool) forzado al tipo booleano
  • (boolean) forzado al tipo booleano
  • (double) forzado al tipo ‘punto flotante’
  • (float) forzado al tipo ‘punto flotante’
  • (int) forzado al tipo entero
  • (integer) forzado al tipo entero
  • (object) forzado al tipo objeto
  • (string) forzado al tipo ‘cadena de texto’

A continuación, se muestra un par de ejemplos de lo mencionado:

$var_3 = "5";  // string(1) "5"
$var_4 = (int) $var_3;  // int(5)
$flag = 1;  // int(1)
$flag = (bool) $flag;  // bool(true)

Los casting permitidos en PHP son:
(int), (integer) - cast to int
(bool), (boolean) - cast to bool
(float), (double), (real) - cast to float
(string) - cast to string
(array) - cast to array
(object) - cast to object
(unset) - cast to NULL

El casting en el lenguaje php es clave, excelente clase

string(6) "Carlos"
string(5) "Gomez"
int(10)
bool(true)
float(10.5)
string(12) "Carlos Gomez"
bool(true)
int(10)
int(10)
float(5.5555555555556)
int(10)

nombre =string
apellido = string
edad = int
aprobado = bool

promedio = decimal
nombre completo = string
presentoexamen = bool

con los avanzandos tengo dudas 😦

Mi humilde aporte

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<?php
$numbero = '22';
var_dump($numbero);
$number1 = (int) $numbero;
var_dump($number1);
?>
<br>
<?php
$dias = 5.89;
var_dump($dias);
$dias = (int) $dias;
var_dump($dias);
?>
<br>
<?php
$boolean = 1;
var_dump($boolean);
$boolean = (bool) $boolean;
var_dump($boolean);
?>
</body>
</html>

$carlos: string
$gómez: string
$edad: int
$aprobado: boolean
$promedio: float
$nombre_completo: string
$presento_examen: boolean
$numero_preguntas: int
$numero_respuestas: int
$promedio_maximo = float
$michis = int

Comparto el tipo de dato que he identificado para cada una de las expresiones de la imagen del reto

echo "******** Reto ********\n";

//Fácil

$nombre = "Carlos"; // string
$apellido = "Gómez"; // string
$edad = 18; // int
$aprobado = true; // boolean


//Medio

$promedio = (8 + 9.5 + 9 + 10 + 8) / 5; // float
$nombre_completo = $nombre . " " . $apellido; // string
$presento_examen = (bool) 1; // boolean


//Avanzado

$numero_preguntas = 5 + "5"; // int
$numero_respuestas = "5" + 5; // int
$promedio_maximo = $numero_respuestas / 1.0; // float
$michis = 3 + "5 michis"; // int

// RETO

//Fácil

$nombre = “Carlos”; // STRING
$apellido = “Gómez”; // STRING
$edad = 18; // INT
$aprobado = true; // BOOLEANO

//Medio

$promedio = (8 + 9.5 + 9 + 10 + 8) / 5; // FLOAT
$nombre_completo = $nombre . " " . $apellido; // STRING
$presento_examen = (bool) 1; // BOOLEANO

Avanzado

$numero_preguntas = 5 + “5”; // INT
$numero_respuestas = “5” + 5; // INT
$promedio_maximo = $numero_respuestas / 1.0; // FLOAT
$michis = 3 + “5 michis”; // INT

Ya lo agregaron

Yo lo práctique así:

****<?php
$foo = 10; // $foo es un integer
$bar = (boolean) $foo; // $bar es un boolean
?>

Nombre = string
Apellido = string

Edad = int

aprobado = Booleano

El casting es la coercion de JavaScript, sin duda venir de la escuela de javascript me hace comparar ciertas cosas del lenguaje.

Reto

//Fácil
$nombre = "Carlos"; //string
$apellido = "Gómez"; //string
$edad = 18; //int
$aprobado = true; //bool

//Medio
$promedio = (8 + 9.5 + 9 + 10 + 8) / 5; //float
$nombre_completo = $nombre . " " . $apellido; //string
$presento_examen = (bool) 1; //bool

//Avanzado
$numero_preguntas = 5 + "5"; //int
$numero_respuestas = "5" + 5; //int
$promedio_maximo = $numero_respuestas / 1.0; //float
$michis = 3 + "5 michis"; //con warning pero devuelve int(8)

RETO

//Fácil

$nombre = "Carlos";  // String
$apellido = "Gómez"; // String
$edad = 18; // integer
$aprobado = true; // bool

//Medio

$promedio = (8 + 9.5 + 9 + 10 + 8) / 5; // float
$nombre_completo = $nombre . " " . $apellido; // String
$presento_examen = (bool) 1; // bool

//Avanzado

$numero_preguntas = 5 + "5"; // Int
$numero_respuestas = "5" + 5; // int
$promedio_maximo = $numero_respuestas / 1.0; //Float
$michis = 3 + "5 michis"; // int con Warning:  A non-numeric value encountered in

Salto de línea

En PHP existe una constante que se usa para hacer el salto de línea, esta es PHP_EOL (End Of Line) y se puede usar así:

<?php
echo "Hola mundo" . PHP_EOL;

const PI = 3.14159;
echo PI;
echo PHP_EOL;

Despues de programar en otros lenguajes se hace incomodo usar el signo de dinero para cada variable, cometo errores seguidos debido a ello.

Por otro lado les comparto algo que me parecio gracioso debido a como veo las clases en mi pantalla (no estoy seguro de poder hacer el siguiente reto :C ).

ASI ME QUEDO:

 //Facil

$nombre = "Carlos"; // STRING
$apellido = "Gómez"; // STRING
$edad = 18; //INT
$aprobado = true;// BOOLEANO

//Medio

$promedio = (8 + 9.5 + 9 + 10 + 8) / 5; //FLOAT
$nombre_completo = $nombre . " " . $apellido; //STRING
$presento_examen = (bool) 1; //BOOLEANO

//Avanzado

$numero_preguntas = 5 + "5"; //INT
$numero_respuestas = "5" + 5; // INT
$promedio_maximo = $numero_respuestas / 1.0; //FLOAT
$michis = 3 + "5 michis"; //INT

Niah 😃

//Fácil

$nombre = “Carlos”;//STRING
$apellido = “Gómez”;// STRING
$edad = 18;// INT
$aprobado = true; /BOOL

//Medio

$promedio = (8 + 9.5 + 9 + 10 + 8) / 5; // FLOAT
$nombre_completo = $nombre . " " . $apellido; //STRING
$presento_examen = (bool) 1;// BOOL

//Avanzado

$numero_preguntas = 5 + “5”; // INT
$numero_respuestas = “5” + 5; // INT
$promedio_maximo = $numero_respuestas / 1.0;//FLOAT
$michis = 3 + “5 michis”; "WARNING "8

fake cuando toma cafe

// Fácil

$nombre = "Carlos";  // string(6) "Carlos"
$apellido = "Gómez"; // string(6) "Gómez"
$edad = 18;          // int(18)
$aprobado = true;    // bool(true)

// Medio
// float(8.9)
$promedio = (8 + 9.5 + 9 + 10 + 8) / 5;

// string(13) "Carlos Gómez"
$nombre_completo = $nombre . " " . $apellido;

// bool(true)
$presento_examen = (bool) 1;

// Avanzado
// int(10)
$numero_preguntas = 5 + "5";

// int(10)
$numero_respuestas = "5" + 5;

// float(10)
$promedio_maximo = $numero_respuestas / 1.0;

// int(8)
$michis = 3 + "5 michis";