今天在做ctf题时,遇到了这个函数,当时不知道这个函数什么意思,所以就百度了一下:
inset函数,是PHP语言的一个函数,其用法是用来检测变量是否设置的
语法 bool isset ( mixed $var [, mixed $... ] )检测变量是否设置,并且不是 NULL。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节(" ")并不等同于 PHP 的 NULL 常数(这里所说的null字节,就是指的空字节)。
在PHP语言中在变量前加一个$ 符号,来表明这是个变量(这点和Linux下shell语言类似)
技术细节 返回值:如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。(这里的null值得是常数)PHP 版本:PHP 4, PHP 5, PHP 7 <?php
$var = '';
// 结果为 TRUE,所以后边的文本将被打印出来。
if (isset($var)) {
echo "This var is set so I will print.";(这里的$var的值,是一个空字节实际上是‘ ’,所以并不是一个空的值,因此isset($var)的返回值是ture)
}
// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。
// the return value of isset().
$a = "test";
$b = "anothertest";
var_dump(isset($a)); // TRUE (var_dump()方法是判断一个变量的类型与长度,并输出变量的数值, 1.如果变量有值输出的是变量的值并回返数据类型 2.var_dump里面的变量必须是存在的,如果变量存在但值是空的就会返回false 3.没有变量则返回NULL
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
?>