在PHP中未定义数据类型?

Col*_*gan 1 php types undefined

undefinedphp中的数据类型?另外,如何检查它(在变量上,是或未定义)?

Jon*_*Jon 5

PHP中没有"未定义"的数据类型.您可以检查正在设置的变量isset,但这无法区分未设置的变量和具有null值的变量:

var_dump(isset($noSuchVariable)); // false

$nullVariable = null;
var_dump(isset($nullVariable)); // also false
Run Code Online (Sandbox Code Playgroud)

但是,您可以使用一个技巧compact,允许您确定是否已定义变量,即使其值为null:

var_dump(!!compact('noSuchVariable')); // false
var_dump(!!compact('nullVariable')); // true
Run Code Online (Sandbox Code Playgroud)

实例.

无论issetcompact技巧也为多个变量同时工作(用逗号分隔的列表).

null处理数组键时,您可以轻松区分值和完全不存在:

$array = array('nullKey' => null);

var_dump(isset($array['nullKey'])); // false
var_dump(array_key_exists($array, 'nullKey')); // true
Run Code Online (Sandbox Code Playgroud)

实例.

在处理对象属性时,也有对象property_exists的等价array_key_exists物.