Tengo un código simple que obtiene los parámetros insertados por el usuario. Pero, ¿cómo puedo usar $_POST para establecer un valor predeterminado? Por ejemplo, si se le pide a un usuario que ingrese el nombre y la edad y elige ingresar solo el nombre, necesito que $_POST establezca la edad en 0.

Mi código lo que uso:

$name = $_POST['name'];
$weight= $_POST['weight'];
$size =   $_POST['size'];

Y a veces solo puede haber peso o tamaño, por lo que necesito configurar el valor predeterminado. Intenté $size = $_POST['size'] ?? 0; pero no funcionó.

1
Thranduil 17 sep. 2018 a las 13:16

3 respuestas

La mejor respuesta

Puede usar operador ternario para establecer valores predeterminados para campos no obligatorios.

$name = $_POST['name'];
$weight= (!empty($_POST['weight'])) ? $_POST['weight'] : 0;
$size =   (!empty($_POST['size'])) ? $_POST['size'] : 0;

Referencia:-

vacía()

Nota:- Puede hacer lo mismo para name también como: -

$name = (!empty($_POST['name'])) ? $_POST['name'] : '';

Observación :- El operador de fusión nulo ?? solo funcionaba en php 7+

5
Anant Singh---Alive to Die 17 sep. 2018 a las 10:33

La función isset() se usa para verificar si una variable está configurada o no. Si una variable ya no está establecida con la función unset (), ya no se establecerá. La función isset() devuelve falso si la variable de prueba contiene un valor NULL.

Versión: PHP 4 y superior

Código de prueba:

$name =  isset($_POST['name']) ? $_POST['name'] : '';
$weight= isset($_POST['weight']) ? $_POST['weight'] : 0;
$size =  isset($_POST['size']) ? $_POST['size'] : 0;
3
Mohammad 17 sep. 2018 a las 10:36

Tratar:

$size = (isset($_POST['size'])) ? $_POST['size'] : 0;
0
Anant Singh---Alive to Die 17 sep. 2018 a las 10:37