isset
isset
(PHP 4, PHP 5, PHP 7)
isset - 确定是否设置了变量 NULL
描述
bool isset ( mixed $var [, mixed $... ] )
确定是否设置了变量NULL
。
如果使用unset()取消设置变量,则将不再设置该变量。如果测试已设置的变量,则isset()
将返回。另请注意,空字符(“\ 0”
)不等于PHP 常量。FALSENULLNULL
如果提供了多个参数,则仅当设置了所有参数时,isset()
才会返回TRUE
。评估从左到右进行,一旦遇到未设置的变量就停止。
参数
var
要检查的变量。
...
另一个变量
返回值
TRUE
如果var
存在则返回并且具有除以外的值NULL
。FALSE
除此以外。
Changelog
版 | 描述 |
---|---|
5.4.0 | 检查字符串的非数字偏移现在返回FALSE。 |
Examples
示例#1 isset()示例
<?php
$var = '';
// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
echo "This var is set so I will print.";
}
// In the next examples we'll use var_dump to output
// the return value of isset().
$a = "test";
$b = "anothertest";
var_dump(isset($a) // TRUE
var_dump(isset($a, $b) // TRUE
unset ($a
var_dump(isset($a) // FALSE
var_dump(isset($a, $b) // FALSE
$foo = NULL;
var_dump(isset($foo) // FALSE
?>
这也适用于数组中的元素:
<?php
$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple')
var_dump(isset($a['test']) // TRUE
var_dump(isset($a['foo']) // FALSE
var_dump(isset($a['hello']) // FALSE
// The key 'hello' equals NULL so is considered unset
// If you want to check for NULL key values then try:
var_dump(array_key_exists('hello', $a) // TRUE
// Checking deeper array values
var_dump(isset($a['pie']['a']) // TRUE
var_dump(isset($a['pie']['b']) // FALSE
var_dump(isset($a['cake']['a']['b']) // FALSE
?>
示例#2 isset()on String Offsets
PHP 5.4更改了传递字符串偏移时isset()的
行为方式。
<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key'])
var_dump(isset($expected_array_got_string[0])
var_dump(isset($expected_array_got_string['0'])
var_dump(isset($expected_array_got_string[0.5])
var_dump(isset($expected_array_got_string['0.5'])
var_dump(isset($expected_array_got_string['0 Mostel'])
?>
在PHP 5.3中输出上面的例子:
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
在PHP 5.4中输出上述示例:
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
Notes
Warning
isset()
仅适用于变量,因为传递任何其他内容都会导致解析错误。要检查是否设置了常量,请使用defined()函数。
注意
:因为这是一种语言结构而不是函数,所以不能使用变量函数调用它。
注意
:在不可访问的对象属性上使用isset()
时,如果声明,将调用__isset()
重载方法。
See Also
- empty() - 确定变量是否为空
- __isset()
- unset() - 取消设置给定变量
- defined() - 检查给定的命名常量是否存在
- array_key_exists() - 检查数组中是否存在给定的键或索引
- is_null() - 查找变量是否为NULL
- the error control @ operator
← is_string
print_r →
© 1997–2017 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.