php

How to check if a variable is undefined in PHP?

Which methods are available in PHP to check if a variable or an array key is defined?
 

Check with isset():

Isset() can be used to check whether a variable has already been defined.

<?php
    $a = 50;
    $b = 0;
    $str = '';
 
    var_dump(isset($a));   // true
    var_dump(isset($b));   // true
    var_dump(isset($str)); // true
    var_dump(isset($x));   // false
?>

Output:

bool(true)
bool(true)
bool(true)
bool(false)
 

Isset() applied to arrays:

Isset() is often used on arrays to check whether the value for a certain key exists:

<?php
    $person = array('alex'=>25, 'emily'=>12, 'bob'=>30);
    
    if (isset($person['alex'])) 
    {
        echo($person['alex']);
    } 
    else 
    {
        echo('Alex\'s age is unknown.');
    }
?>

Output:

25
PHP MCQ - Multiple Choice Questions and AnswersPHP Questions and Answers – Object-Oriented OOP – Part 1This collection of PHP Multiple Choice Questions and Answers (MCQs): Quizzes & Practice Tests with Answer focuses on “Object-Oriented OOP”.   1. The concept of…Read More
Empty() and arrays:

isset() has a disadvantage: If a variable is assigned the value NULL, isset() returns false, regardless of whether the value of a variable ($var) or an array key ($var[‘key’]) is tested. This problem can be avoided by using! Empty() instead of isset().

<?php
    $a = 50;
    $b = null;
    $c = array('one'=>1, 'two'=>null);
 
    var_dump( isset($a) ); // true
    var_dump( isset($b) ); // false
    var_dump( isset($c['one']) ); // true
    var_dump( isset($c['two']) ); // false
 
    echo("\n\n");
 
    var_dump( !empty($a) ); // true
    var_dump( !empty($b) ); // false
    var_dump( !empty($c['one']) ); // true
    var_dump( !empty($c['two']) ); // false
?>

Output:

bool(true)
bool(false)
bool(true)
bool(false)


bool(true)
bool(false)
bool(true)
bool(false)
 

Isset() vs empty() vs array_key_exists() for arrays :

Also empty() has its own disadvantages: All false-like values are considered empty and therefore empty() returns true for them. These values are in detail: (bool)false, (int)0, (float)0.0, (string)””, (string) “0” and NULL. In order to “circumvent” this problem, the function array_key_exists() can be used. This function expects the name of the key to be checked and the array to be checked. If the key is defined in the array – no matter which value – true is returned, otherwise false.

<?php
    $arr = array('A'=>1, 'B'=>null, 'C'=>0);
 
    echo("isset():\n");
 
    var_dump(isset($arr['A'])); // true
    var_dump(isset($arr['B'])); // false
    var_dump(isset($arr['C'])); // true
    var_dump(isset($arr['D'])); // false
 
    echo("\nempty():\n");
 
    var_dump(!empty($arr['A'])); // true
    var_dump(!empty($arr['B'])); // false
    var_dump(!empty($arr['C'])); // false
    var_dump(!empty($arr['D'])); // false
 
    echo("\narray_key_exists():\n");
 
    var_dump(array_key_exists('A', $arr)); // true
    var_dump(array_key_exists('B', $arr)); // true
    var_dump(array_key_exists('C', $arr)); // true
    var_dump(array_key_exists('D', $arr)); // false
?>

Output:

isset():
bool(true)
bool(false)
bool(true)
bool(false)

empty():
bool(true)
bool(false)
bool(false)
bool(false)

array_key_exists():
bool(true)
bool(true)
bool(true)
bool(false)
mcqMCQPractice competitive and technical Multiple Choice Questions and Answers (MCQs) with simple and logical explanations to prepare for tests and interviews.Read More

Leave a Reply

Your email address will not be published. Required fields are marked *