Простейший пример :
$array = [1, 2, 3];
$result = $array[0]++; // Никаких ошибок код не выдаёт
echo "<p> $result"; // В переменной 1 а не 2.
Я ожидал получить другой результат. Что это баг, или так надо ?
Надо сделать так:
$result = ++$array[0];
Подробнее:
Строка: $result = $array[0]++;
делает 2 действия:
1) $result = $array[0];
2) $array[0]++;
Это связанно с принципом работы инкремента. Наглядно можно убедиться на этом примере:
$array = [1, 2, 3];
$link = &$array[0];
$result = $link++;
var_dump($result, $link);
В документации PHP
написано:
++$a - Увеличивает $a на единицу, затем возвращает значение $a.
$a++ - Возвращает значение $a, затем увеличивает $a на единицу.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне нужно сделать проверку инпута, с помощью vuejs, без нажатия на submit, которая будет проверять наличие логина в БД (проверяется в php файле)
В БД 'secret_users' с полями: id, name, email, password, ip_reg, data_reg есть users