PHP7中的isset
### 1. isset的作用和概念
PHP的`isset()`函数用于检查是否已经设置了某个变量,可以检查多个变量是否存在。如果变量存在返回`true`,不存在或者值为`null`则返回`false`。在一些条件判断、变量赋值前需要先要检查变量是否存在,这是`isset()`函数的应用场景之一。
### 2. isset()的语法和用法
`isset()`函数的语法如下:
```php
bool isset(mixed $var, mixed $var2 = ?, mixed $... = ?)
```
`$var, $var2 = ?, $... = ?`表示参数列表,可以传入多个参数进行检查,`mixed`表示参数可以是任意类型的变量。`isset()`函数返回一个`bool`类型的值,表示条件是否满足。
下面是一些`isset()`函数的用法实例:
#### 2.1 判断变量是否设置
```php
$a = 1;
$b = null;
isset($a); // true
isset($b); // false
isset($c); // false
?>
```
#### 2.2 检查数组是否存在某个键值
```php
$arr = array('a' => 1, 'b' => 2, 'c' => null);
isset($arr['a']); // true
isset($arr['b']); // true
isset($arr['c']); // false
isset($arr['d']); // false
?>
```
在判断数组元素是否存在时需要注意,如果要访问的元素是一个数组或对象,那么需要同时判断这个数组或对象和它的子元素是否都存在。
### 3. isset()的注意事项
#### 3.1 对未声明变量进行检查会报错
对未声明变量进行`isset()`检查会报错。
```php
isset($c); // Undefined variable: c
?>
```
#### 3.2 `null`不等于未声明变量
未声明变量和变量的值为`null`是不同的,因为未声明变量不存在,而变量的值为`null`存在。
```php
$c = null;
isset($c); // true
isset($d); // false
?>
```
#### 3.3 `empty()`函数也能检查变量是否存在
`empty()`函数可以判断一个变量是否存在,如果存在但值为`false`、为空字符串`''`、空数组、空对象、`0`时返回`true`,其他情况返回`false`。如果变量不存在返回`true`。
```php
$a = '';
$b = false;
$c = array();
$d = new stdClass();
$e = 0;
isset($a); // true
isset($b); // true
isset($c); // true
isset($d); // true
isset($e); // true
empty($a); // true
empty($b); // true
empty($c); // true
empty($d); // false
empty($e); // true
?>
```
#### 3.4 在数组中检查空元素需使用`array_key_exists()`函数
检查一个数组元素是否为空,应该使用`array_key_exists()`函数。`array_key_exists()`函数只会判断数组中是否存在某个键名,而不在意它的值是否为空。
```php
$arr = array('a' => 1, 'b' => 2, 'c' => null);
array_key_exists('c', $arr); // true
array_key_exists('d', $arr); // false
?>
```
### 4. 总结
本文介绍了PHP7中`isset()`函数的用法和注意事项,它可以检查一个变量是否设置,可以检查数组中是否存在某个键值。在使用时需要注意变量的声明、变量的值为`null`时和`empty()`函数的区别、以及在数组中检查空元素时需要使用`array_key_exists()`函数。深入理解`isset()`函数的使用和细节,对于PHP开发人员是非常重要的。