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

-7
user6912198 23 ene. 2018 a las 00:15

3 respuestas

La mejor respuesta

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
?>
2
SrThompson 22 ene. 2018 a las 21:22

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)
1
Max 22 ene. 2018 a las 21:25

En su caso, ya que no está definiendo $ var, isset($var) devolverá falso.

0
tech stack 22 ene. 2018 a las 21:27
48390379