Tengo algunas preguntas sobre la función isset ().
La función isset () verifica si la variable está establecida o no o, en otras palabras, verifica si el valor de la variable no es NULL.
Pero qué pasa si hago algo como esto:
<?php
isset($var);
?>
¿Qué sucede cuando uso la función isset () en una variable que no existe / no está declarada / no está definida o como se llame?
Pregunto porque estoy escribiendo un código
<?php
function renderForm($firstName = '', $lastName = '' , $error = '', $id = ''){
?>
<div id='recordsForm'>
<h1><?php if($id != '' ){ echo "Edit Record"; } else { echo 'Create New Record'; } ?></h1>
<?php if($error != ''){ echo $error; } ?>
<form action='records.php' method='POST'>
<?php
if($id != ''){
?>
<input type='hidden' name='id' value='<?php echo $id; ?>'>
<?php
echo "<h3>Record ID: {$id}</h3>";
}
echo "First Name: <input type='text' name='firstname' value='".$firstName."' />";
echo "<br>";
echo "Last Name: <input type='text' name='lastname' value='".$lastName."' /> ";
echo "<br>";
echo "<input type='submit' name='submit' value='submit' />";
?>
</form>
</div>
<?php
}
if(isset($_GET['id']) && is_numeric($_GET['id'])){
// edit record
renderForm(NULL,NULL,NULL,$_GET['id']);
} else {
// add new record
if(isset($_POST['submit'])){
// Do some form processing stuff
} else {
renderform();
}
}
?>
?>
Como puede ver, escribí isset ($ _ POST ['submit']) incluso si $ _POST ['submit'] no existe porque no llamé a la función renderForm ().
Entonces, ¿esto significa que isset () solo verifica si la variable no es nula, incluso si la variable no existe como en mi caso?
Espero no haberte confundido: D
3 respuestas
isset($var)
verifica que la variable esté definida en el alcance actual y que su valor no sea nulo. Algunos ejemplos:
<?php
isset($var); //false
?>
<?php
$var = null;
isset($var); //false
?>
<?php
$var = "some string";
isset($var); //true
?>
<?php
$var = "";
isset($var); //true
?>
<?php
$var = false;
isset($var); //true
?>
isset()
devolverá verdadero para cualquier variable que esté establecida y no sea idéntica a NULL
.
Ejemplo:
$a = null;
$b = '';
$c = 0;
$d = false;
$e = true;
var_dump(isset($a), isset($b), isset($c), isset($d), isset($e), isset($f));
Debería mostrar:
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
En su caso, ya que no está definiendo $ var, isset($var)
devolverá falso.
Preguntas relacionadas
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.