PHP7中的isset

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开发人员是非常重要的。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签