$pupilIds = array();
foreach ($pupils as $pId => $pArr) {
$pupilIds[] = $pupils[$pId]['ID'];
}
Например $pupils = [].
тогда:
$pupilIds = array();
foreach ($pupils as $pId => $pArr) {
$pupilIds[] = $pupils[$pId]['ID'];
}
print_r($pupilIds);
Выведет Array()
а в случае:
foreach ($pupils as $pId => $pArr) {
$pupilIds[] = $pupils[$pId]['ID'];
}
print_r($pupilIds);
Не выведет ничего потому что $pupilIds равен NULL.
Разница в то, что когда код составлен логически верно тогда результат гарантированно предсказуем чего не скажешь в других случаях.
К примеру есть функция :
function foo(array $bar)
{
}
тогда код
$pupilIds = array();
foreach ($pupils as $pId => $pArr) {
$pupilIds[] = $pupils[$pId]['ID'];
}
foo($pupilIds);
будет корректен чего не скажешь про код
foreach ($pupils as $pId => $pArr) {
$pupilIds[] = $pupils[$pId]['ID'];
}
foo($pupilIds);
Который при $pupilIds = NULL вернет fatal error.
_____________
Трус не играет в хокей