list() with keys unpacks an associative row

Destructuring only worked positionally, so a row fetched as an associative array had to be unpacked by hand — three assignments and a typo waiting to happen.

['sku' => $sku, 'price' => $price] = $row;

foreach ($rows as ['sku' => $sku, 'price' => $price]) {
    printf("%s %dn", $sku, $price);
}

A missing key produces a notice and null rather than an error, so this is not validation — a mistyped key fails quietly, which is the one thing to watch for. The short syntax and list() both support it, and mixing keyed and positional entries in the same destructuring is a parse error rather than a partial unpack.