Рубрики
Uncategorized

Разница между “?” и “?:” введена php7

Автор оригинала: David Wong.

Практика дает истинное знание

Тестовый код

Входной тест:

php
  $array = [
    'a' => 1,
    'b' => 2,
    'c' => [],
  ];
  $a = $array['c'] ?? 0;
  $b = $array['c'] ?: 0;
  $c = $array['d'] ?? 0;
  $d = $array['d'] ?: 0;
  $e = $array['c'] ? 1 : 0;
  $f = isset($array['c']) ? 1 : 0;
  $g = $array['d'] ? 1 : 0;
  $h = isset($array['d']['e']) ? 1 : 0;
  $i = !empty($array['c']) ? 1 : 0;
  $j = !empty($array['d']) ? 1 : 0;
  var_dump($a);
  var_dump($b);
  var_dump($c);
  var_dump($d);
  var_dump($e);
  var_dump($f);
  var_dump($g);
  var_dump($h);
  var_dump($i);
  var_dump($j);

Выходные результаты:

Уведомление о PHP: Неопределенный индекс: d в/home/fanyu/abc.php в строке 11 Уведомление о PHP: Неопределенный индекс: d в/home/fanyu/abc.php в строке 14 массив(0) { } int(0) int(0) int(0) int(0) int(1) int(0) int(0) int(0) int(0)int (0)

заключение

  1. $a?? 0 эквивалентно isset ($a)? $a: 0.
  2. $a?: 0 эквивалентно $a? $a: 0.
  3. Пусто: определите, является ли переменная пустой (null, false, 00, 0, ‘0’, ‘, и т.д., вернет значение true).
  4. Isset: определяет, установлена ли переменная (такие значения, как false, 00, 0, ‘0’, ‘, и т.д., также вернет значение true).

резюме

Выше приведено все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет некоторую справочную учебную ценность для вашей учебы или работы. Спасибо вам за вашу поддержку developepaer. Если вы хотите узнать об этом больше, пожалуйста, ознакомьтесь с соответствующими ссылками ниже