Etuliitteinen ja jälkiliitteinen tyyppi PHP:ssä

Itse asiassa inkrementti- ja dekrementtioperaatiot voidaan kirjoittaa kahdella tavalla. Jälkiliitteisessä muodossa operaatio kirjoitetaan muuttujan nimen jälkeen, näin: $a++, kun taas etuliitteisessä muodossa - ennen muuttujan nimeä, näin: ++$a. Katsotaan esimerkkien avulla, mikä ero on näiden kahden tavan välillä.

Seuraavassa esimerkissä ensimmäinen echo tulostaa 0, koska ensin tapahtuu tulostus näytölle, ja vasta sitten muuttuja kasvaa:

php<?php
  $num = 0;
  echo $num++; // tulostaa 0, koska muuttuja kasvaa vasta echo:n jälkeen
  echo $num;   // tulostaa 1 - muuttuja on muuttunut
?>

Mutta nyt muuttuja kasvaa ensin, ja vasta sitten tapahtuu tulostus näytölle:

php<?php
  $num = 0;
  echo ++$num; // tulostaa 1 - muuttuja kasvoi välittömästi
?>

Tällainen käyttäytyminen pätee ei vain näytölle tulostukseen, vaan myös sijoittamiseen:

php<?php
  $num1 = 0;
  $num2 = $num1++; // muuttujaan $num2 kirjoitetaan 0
  echo $num2;      // tulostaa 0
  echo $num1;      // tulostaa 1 - muuttuja $num1 muuttui $num2:een kirjoittamisen jälkeen
?>

Mutta nyt vaihdetaan jälkiliitteinen muoto etuliitteiseksi:

php<?php
  $num1 = 0;
  $num2 = ++$num1; // muuttujaan $num2 kirjoitetaan 1
  echo $num2;      // tulostaa 1
?>

Jos operaatiomme suoritetaan omalla rivillään, etuliitteisen ja jälkiliitteisen muodon välillä ei ole eroa:

php<?php
  $num = 0;
  ++$num;
  $num++;
  echo $num; // tulostaa 2
?>
Задание 1

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num = 3;
  echo ++$num;
?>
Задание 2

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num = 3;
  echo $num++;
?>
Задание 3

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num = 3;
  echo --$num;
?>
Задание 4

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num = 3;
  echo $num--;
?>
Задание 5

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num1 = 3;
  $num2 = ++$num1;
  echo $num1;
  echo $num2;
?>
Задание 6

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num1 = 3;
  $num2 = $num1++;
  echo $num1;
  echo $num2;
?>
Задание 7

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num1 = 3;
  $num2 = --$num1;
  echo $num1;
  echo $num2;
?>
Задание 8

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num1 = 3;
  $num2 = $num1--;
  echo $num1;
  echo $num2;
?>
Задание 9

Älä käynnistä koodia, päätä, mitä tulostetaan näytölle:

php<?php
  $num1 = 3;
  $num1++;
  $num2 = $num1--;
  echo $num1++;
  echo --$num2;
?>