|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-05-12 10:52 UTC] cmb@php.net
-Status: Open
+Status: Feedback
-Package: PHP Language Specification
+Package: Variables related
[2015-05-12 10:52 UTC] cmb@php.net
[2015-05-12 10:58 UTC] daverandom@php.net
-Status: Feedback
+Status: Duplicate
[2015-05-12 11:02 UTC] daverandom@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 07:00:01 2025 UTC |
Description: ------------ current php no best way check a variable whether be defined, only like below: if check $a whether be defined in global varibale: array_key_exists('a', $GLOBALS); in function or method: array_key_exists('a',get_defined_vars()) because isset, empty is not trust, see test script Test script: --------------- <?php function test() { //defined variable $a = null; var_dump(isset($a)); //false var_dump(is_null($a));//true var_dump(empty($a)); //true //undefined variable var_dump(isset($b));//false var_dump(empty($a)); //true var_dump(@is_null($c));//true, Notice: Undefined variable: a var_dump(get_defined_vars());//$b,$c undefined, $a is defined and value is NULL //be unset() variable $d; unset($d); var_dump(empty($a)); //true var_dump(isset($d));//false var_dump(@is_null($d));//true,Notice: Undefined variable: a var_dump(get_defined_vars());//$b,$c undefined,$d be unset and defined, $a is defined and value is NULL //empty string variable $e = ''; var_dump(empty($e)); //true var_dump(isset($e)); // true var_dump(is_null($e)); //false var_dump(get_defined_vars());//$b,$c undefined,$d be unset and undefined, $a is defined and value is NULL, $e is defined and value is empty string } test(); Expected result: ---------------- <?php $a; var_dump(isset($a)); // is false Actual result: -------------- <?php $a; var_dump(isset($a)); // is true ?> or <?php $a; var_dump(isdefined($a)); //is true