Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
$a = [1, 2, 3];
$b = $a;
$b[] = 4;
$b[0] = 100;
echo count($a), ' ', $a[0], ' ', count($b), ' ', $b[0], "\n";3 1 4 100
- Ждать, что
$b— второе имя того же массива, как в Python или JavaScript: в PHP$b = $aкопирует массив, и в$aостаётся[1, 2, 3]. - Считать, что часть записей в
$bвидна в$a: после$b = $aмассивы независимы, и ни$b[] = 4, ни$b[0] = 100не меняют$a.
- Когда PHP на самом деле копирует элементы: на
$b = $aили позже? - Копируется ли вложенный массив внутри
$aили он общий с$b?