pasar - recibir variables por url php
¿Cómo verificar si $_GET existe? (7)
Entonces, tengo un código PHP que se parece un poco a esto:
<body>
The ID is
<?php
echo $_GET["id"] . "!";
?>
</body>
Ahora, cuando paso una identificación como http://localhost/myphp.php?id=26
funciona bien, pero si no hay una identificación como simplemente http://localhost/myphp.php
entonces se genera:
The ID is
Notice: Undefined index: id in C:/xampp/htdocs/myphp.php on line 9
!
He buscado una forma de solucionar esto, pero no encuentro ninguna forma de verificar si existe una variable URL. Sé que debe haber una manera sin embargo.
Normalmente es bastante bueno hacer:
echo isset($_GET[''id'']) ? $_GET[''id''] : ''wtf'';
Esto es así al asignar la var a otras variables puedes hacer valores por defecto todo en un respiro en lugar de usar constantemente declaraciones if
para simplemente darles un valor predeterminado si no están establecidas.
Por favor pruebalo:
if(isset($_GET[''id'']) && !empty($_GET[''id''])){
echo $_GET["id"];
}
Puede usar la array_key_exists()
incorporada array_key_exists()
:
if (array_key_exists(''id'', $_GET)) {
echo $_GET[''id''];
}
o la isset()
incorporada isset()
:
if (isset($_GET[''id''])) {
echo $_GET[''id''];
}
Puedes usar la función isset
:
if(isset($_GET[''id''])) {
// id index exists
}
Puede crear una función útil para devolver el valor predeterminado si el índice no existe:
function Get($index, $defaultValue) {
return isset($_GET[$index]) ? $_GET[$index] : $defaultValue);
}
// prints "invalid id" if $_GET[''id''] is not set
echo Get(''id'', ''invalid id'');
También puede intentar validarlo al mismo tiempo:
function GetInt($index, $defaultValue) {
return isset($_GET[$index]) && ctype_digit($_GET[$index])
? (int)$_GET[$index]
: $defaultValue);
}
// prints 0 if $_GET[''id''] is not set or is not numeric
echo GetInt(''id'', 0);
Use y empty()
con negación (para prueba si no está vacío)
if(!empty($_GET[''id''])) {
// if get id is not empty
}
if (isset($_GET["id"])){
//do stuff
}