«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2021/03/05 16:40:39  №1958529 1
>>1958281 (OP)
А почему код ниже выводит 1?
<?php
$a=1;
echo $a++;
Ответы: >>1958532 >>1958534
Аноним 2021/03/05 16:42:50  №1958534 2
>>1958529
Потому что он сначала прибавляет единицу, но не перезаписывает в переменной. Если хочешь, шобы сразу выводило, юзай ++$a;
Ответы: >>1958543
Аноним 2021/03/05 16:48:33  №1958543 3
>>1958534
Немного непонятно. А почему тогда в гайде написано что $a++ это $a=$a+1 ?
Аноним 2021/03/05 17:10:04  №1958564 4
>>1958543
Не читай гайд из шапки, его писал двачер блять. Двачеры априори не могут писать гайды. Учи на php.net + google. Всё.
Ответы: >>1958567 >>1958861
Аноним 2021/03/05 17:11:39  №1958567 5
>>1958543
>>1958564
Написано то всё верно. Только в гайде походу не уделилось времени этому достаточно.
$a = 0;
echo $a++; //выводит ноль при том, что а будет единицей.

$a = 0;
echo ++$a; //а единица и выводит единицу
Ответы: >>1958580
Аноним 2021/03/05 17:18:29  №1958576 6
>>1958543
Это просто бездумно пизданутая хуйня из си.
Просто всегда делай $var++ и не пихай его в выражения, а отдельной строчкой.
Аноним 2021/03/05 17:21:16  №1958580 7
>>1958567
Я это понял, но я не понимаю как это работает.
Получается $a++ это оператор, который возвращает значение $a вызывающей его функции, а после ее выполнения увеличивает ее на единицу?
Ответы: >>1958585 >>1958864
Аноним 2021/03/05 17:28:27  №1958585 8
>>1958580
> я не понимаю как это работает
Я тебе даже ссылку скинул на офф документацию, ты хоть открывал её?
Аноним 2021/03/06 07:35:24  №1958861 9
>>1958543

$a++ увеличивает $a на 1, но (если ты его используешь в выражении или команде) возвращает исходное значение $a до увеличения. То есть, если написать:

$a = 1;
$a++;
echo $a;

То выведется 2. А если написать

$a = 1;
echo $a++;

то выводится 1, хотя $a увеличивается и становится равно 2 (что легко проверить, дописав echo $a в конец).

Почему это не написано в учебнике? Там я старался писать как можно проще и не залезать глубоко в детали. В учебнике предполагается, что ты будешь писать просто

$a++;

и не будешь пытаться засунуть это внутрь какого-то другого выражения или команды. Сколько я не писал код, я не помню ситуации, когда надо засовывать $a++ в другое выражение. Некоторые так делают, но на мой взгляд это ухудшает читабельность кода и делать так не стоит.

По моему, лучше бы конечно в PHP было запрещено вставлять $a++ внутрь других выражений.

>>1958564

php.net читать конечно полезно, но там не учебник, а мануал и он больше рассчитан на тех, кто уже знает какой-нибудь язык программирования, вроде Си, и кому нужно только выучить отличия. Мануал на php.net не очень подходит для начинающих с нулевыми знаниями, как мне кажется.
Аноним 2021/03/06 07:38:42  №1958864 10
>>1958580

Да, он увеличивает переменную, но возвращает значение до увеличения. Ты можешь проверить это кодом

$a = 1;
echo $a++; // 1
echo $a; // 2

Зачем так сделано? Логику тут найти трудно. Спроси у автора языка Си, зачем он так придумал. Я подозреваю, что просто потому что в компьютерах тех времен была команда для этого, вот он и скопировал ее в язык.