この記事では、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 ビデオ チュートリアル
以上がPHP7では?そして? ?違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。