PHP7中的问号?与??有何不同?

2026-04-03 12:281阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计660个文字,预计阅读时间需要3分钟。

PHP7中的问号?与??有何不同?

本文简要介绍PHP7中?与??的区别。

在PHP中,?和??都是空值合并运算符,用于处理变量可能为空的情况。但它们的使用场景和结果有所不同。

1. ?(三元运算符)

?是三元运算符,格式为:

PHP7中的问号?与??有何不同?

condition ? value_if_true : value_if_false

当`condition`为真时,返回`value_if_true`;否则返回`value_if_false`。

在变量可能为空的情况下,可以使用?来处理:

$a=isset($b) ? $b : 'default';

这里,如果`$b`存在且不为空,`$a`将等于`$b`的值;否则,`$a`将等于`'default'`。

2. ??(空值合并运算符)

??是空值合并运算符,格式为:

$a ?? $b

当`$a`存在且不为空时,返回`$a`的值;否则返回`$b`的值。

在变量可能为空的情况下,可以使用??来处理:

$a=$b ?? 'default';

这里,如果`$b`存在且不为空,`$a`将等于`$b`的值;否则,`$a`将等于`'default'`。

总结:

- ?是三元运算符,用于根据条件返回不同的值。- ??是空值合并运算符,用于在变量可能为空的情况下返回默认值。

在实际应用中,可以根据具体需求选择使用?或??。希望对大家有所帮助。

本篇文章给大家介绍一下PHP7中的“?”与“??”的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

$a = ''; // or 0 or false $b = $a ?? 'a'; // 此时会判断$a是否存在 $a不为null // 等价于 // $b = isset($a) ? $a : 'a'; // $b is '' or 0 or false $c = $a ?: 'a'; // 此时会判断$a的值 // $c is 'a'

$a = null; $b = $a ?? 'a'; // 此时$a为null // $b is 'a' $c = $a ?: 'a'; // $c is 'a'

$a = null; $b = 'b'; $c = $a ?? $b ?? 'c'; // 返回第一个有定义的值 // $c is 'b' $a = null; $b = null; $c = $a ?? $b ?? 'c'; // $c is 'c'

function getId(?int $id) { return $id; } // 参数为指定的整型或空值 getId(857); // 857 getId('857'); // 参数非整型 报错 getId(); // 参数空 报错 getId(''); // 参数非整型 报错 getId(0); // 0 getId(null); // null

function getId():?int { return 1; } // 返回值为指定的整型或空值 getId() // 1 function getId():?int { return null; } getId() // null function getId():?int { return '1'; } getId() // 返回非整型 报错

推荐学习:php视频教程

本文共计660个文字,预计阅读时间需要3分钟。

PHP7中的问号?与??有何不同?

本文简要介绍PHP7中?与??的区别。

在PHP中,?和??都是空值合并运算符,用于处理变量可能为空的情况。但它们的使用场景和结果有所不同。

1. ?(三元运算符)

?是三元运算符,格式为:

PHP7中的问号?与??有何不同?

condition ? value_if_true : value_if_false

当`condition`为真时,返回`value_if_true`;否则返回`value_if_false`。

在变量可能为空的情况下,可以使用?来处理:

$a=isset($b) ? $b : 'default';

这里,如果`$b`存在且不为空,`$a`将等于`$b`的值;否则,`$a`将等于`'default'`。

2. ??(空值合并运算符)

??是空值合并运算符,格式为:

$a ?? $b

当`$a`存在且不为空时,返回`$a`的值;否则返回`$b`的值。

在变量可能为空的情况下,可以使用??来处理:

$a=$b ?? 'default';

这里,如果`$b`存在且不为空,`$a`将等于`$b`的值;否则,`$a`将等于`'default'`。

总结:

- ?是三元运算符,用于根据条件返回不同的值。- ??是空值合并运算符,用于在变量可能为空的情况下返回默认值。

在实际应用中,可以根据具体需求选择使用?或??。希望对大家有所帮助。

本篇文章给大家介绍一下PHP7中的“?”与“??”的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

$a = ''; // or 0 or false $b = $a ?? 'a'; // 此时会判断$a是否存在 $a不为null // 等价于 // $b = isset($a) ? $a : 'a'; // $b is '' or 0 or false $c = $a ?: 'a'; // 此时会判断$a的值 // $c is 'a'

$a = null; $b = $a ?? 'a'; // 此时$a为null // $b is 'a' $c = $a ?: 'a'; // $c is 'a'

$a = null; $b = 'b'; $c = $a ?? $b ?? 'c'; // 返回第一个有定义的值 // $c is 'b' $a = null; $b = null; $c = $a ?? $b ?? 'c'; // $c is 'c'

function getId(?int $id) { return $id; } // 参数为指定的整型或空值 getId(857); // 857 getId('857'); // 参数非整型 报错 getId(); // 参数空 报错 getId(''); // 参数非整型 报错 getId(0); // 0 getId(null); // null

function getId():?int { return 1; } // 返回值为指定的整型或空值 getId() // 1 function getId():?int { return null; } getId() // null function getId():?int { return '1'; } getId() // 返回非整型 报错

推荐学习:php视频教程