Zapis $b++ w PHP to tak zwany operator inkrementacji w wersji postfiksowej. Oznacza on zwiększenie wartości zmiennej b dokładnie o 1. W praktyce, po wykonaniu tej instrukcji, b będzie miało wartość b + 1. Dlatego zapis ten jest równoważny instrukcji przypisania $b = $b + 1. Warto zauważyć, że jest to uproszczona, bardziej czytelna forma, bardzo często wykorzystywana w pętlach, np. for ($i = 0; $i < 10; $i++). Właśnie w takim kontekście operator ++ jest praktycznie standardem branżowym i każdy programista webowy powinien go rozumieć bez zastanawiania. Moim zdaniem używanie $b++ zamiast $b = $b + 1 poprawia czytelność kodu, szczególnie gdy mamy dużo operacji na licznikach, indeksach tablic czy licznikach iteracji. Trzeba też pamiętać o różnicy między $b++ a ++$b. W wersji postfiksowej (b++) najpierw zwracana jest stara wartość, a dopiero potem zmienna jest zwiększana. W wersji prefiksowej (++b) najpierw zwiększana jest wartość, a potem zwracany jest już nowy wynik. W prostych przypadkach, takich jak samodzielna linijka $b++; albo $b = $b + 1;, efekt końcowy w zmiennej b jest ten sam. Natomiast w wyrażeniach typu $c = $b++; różnica ma znaczenie. W codziennej pracy z PHP operatory ++ i -- są fundamentem przy pisaniu pętli, prostych algorytmów zliczania, paginacji czy obsługi indeksów w tablicach. Dobra praktyka to stosowanie tych skróconych operatorów tam, gdzie naprawdę chodzi tylko o zwiększenie lub zmniejszenie o 1, bo od razu widać intencję programisty i kod jest bardziej zwięzły, bez zbędnego „szumu”.
Operator $b++ w PHP bywa mylony z różnymi innymi operacjami na zmiennych, głównie dlatego, że wygląda niepozornie, a pod spodem robi konkretną arytmetykę. Kluczowe jest to, że ++ oznacza zawsze inkrementację, czyli zwiększenie wartości liczbowej dokładnie o 1. Nie ma tu ani porównania, ani mnożenia, ani dodawania wartości do samej siebie w sensie podwajania. Jeśli ktoś patrzy na zapis $b == $b i kojarzy go z jakąś równoważnością, to trzeba jasno powiedzieć: podwójny znak równości w PHP jest operatorem porównania, a nie przypisania. Taka instrukcja sprawdza tylko, czy dwie wartości są równe logicznie, i zwraca true albo false. Nie zmienia ona w ogóle zawartości zmiennej b. W kodzie typu $b == $b + $b zachodzi więc tylko porównanie, które zwykle będzie fałszywe, bo jedna strona jest dwa razy większa od drugiej, ale sama zmienna b pozostaje bez zmian. To jest typowy błąd początkujących: mylenie = (przypisanie) z == (porównanie). Drugi obszar nieporozumień to dodawanie zmiennej do samej siebie. Zapis $b = $b + $b oznacza podwojenie wartości, czyli matematycznie 2 * b. To zupełnie coś innego niż $b++, które robi b = b + 1. W algorytmach, gdzie liczymy np. liczbę elementów, iterację po tablicy, licznik odwiedzin, użycie podwojenia zamiast inkrementacji kompletnie rozwala logikę programu. Z mojego doświadczenia wynika, że wiele takich pomyłek bierze się z pośpiechu i braku nawyku dokładnego czytania operatorów. W dobrych praktykach programistycznych zaleca się używanie operatorów skróconych, takich jak ++, --, +=, ale tylko wtedy, gdy dokładnie rozumiemy, co one robią. Warto też pamiętać, że w PHP semantyka operatorów porównania i przypisania jest jasno zdefiniowana w dokumentacji, a trzymanie się tych standardów pozwala uniknąć subtelnych błędów logicznych. Dlatego przy każdym tego typu pytaniu warto na spokojnie przeanalizować, czy wynik ma zmieniać wartość zmiennej, czy tylko ją sprawdzać, oraz o ile ma się ta wartość zmienić: o 1, czy może ma być podwojona lub pomnożona przez coś innego.