PHP7中的问号和双问号有何本质区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计591个文字,预计阅读时间需要3分钟。
本篇文章为大家简要介绍PHP7中?与??的区别。
在PHP7中,?与??都用于条件运算符,但它们在使用上有所区别。
1. ?的参考价值:当?左边是一个表达式时,PHP会先计算这个表达式的值。如果表达式的值为true,则返回?右边的表达式的值;如果表达式的值为false,则返回?左边的表达式的值。
2. ??的参考价值:与?类似,??也是用于条件运算符。然而,当??左边是一个表达式时,PHP不会计算这个表达式的值。如果??左边的表达式的值为null,则返回??右边的表达式的值;否则,返回??左边的表达式的值。
下面是一个示例,展示了?与??的区别:
php$a=true;$b=false;
// 使用?echo $a ? $b : 0; // 输出:0
// 使用??echo $a ?? $b; // 输出:true
通过上述示例,我们可以看到,?在判断条件为true时,返回右边的表达式值,而??在判断条件为null时,返回右边的表达式值。希望对大家有所帮助。
本篇文章给大家介绍一下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() // 返回非整型 报错
本文共计591个文字,预计阅读时间需要3分钟。
本篇文章为大家简要介绍PHP7中?与??的区别。
在PHP7中,?与??都用于条件运算符,但它们在使用上有所区别。
1. ?的参考价值:当?左边是一个表达式时,PHP会先计算这个表达式的值。如果表达式的值为true,则返回?右边的表达式的值;如果表达式的值为false,则返回?左边的表达式的值。
2. ??的参考价值:与?类似,??也是用于条件运算符。然而,当??左边是一个表达式时,PHP不会计算这个表达式的值。如果??左边的表达式的值为null,则返回??右边的表达式的值;否则,返回??左边的表达式的值。
下面是一个示例,展示了?与??的区别:
php$a=true;$b=false;
// 使用?echo $a ? $b : 0; // 输出:0
// 使用??echo $a ?? $b; // 输出:true
通过上述示例,我们可以看到,?在判断条件为true时,返回右边的表达式值,而??在判断条件为null时,返回右边的表达式值。希望对大家有所帮助。
本篇文章给大家介绍一下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() // 返回非整型 报错

