title: using PHP's null coalescing operator on an array
body: <p>I am using PHP's null coalescing operator described by <a href="http://php.net/manual/en/migration70.new-features.php" rel="noreferrer">http://php.net/manual/en/migration70.new-features.php</a>.</p>
  
  <pre><code>Null coalescing operator ¶
  The null coalescing operator (??) has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not NULL; otherwise it returns its second operand.
  
  &lt;?php
  // Fetches the value of $_GET['user'] and returns 'nobody'
  // if it does not exist.
  $username = $_GET['user'] ?? 'nobody';
  // This is equivalent to:
  $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
  
  // Coalescing can be chained: this will return the first
  // defined value out of $_GET['user'], $_POST['user'], and
  // 'nobody'.
  $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
  ?&gt;
  </code></pre>
  
  <p>I noticed the following doesn't produce my expected results which was to add a new <code>phone</code> index to <code>$params</code> whose value is "default".</p>
  
  <pre><code>$params=['address'=&gt;'123 main street'];
  $params['phone']??'default';
  </code></pre>
  
  <p>Why not?</p>