Prefix och postfix i PHP
Faktum är att inkrement- och dekrementoperationer
kan skrivas på två sätt. I postfix
skrivs operationen efter variabelnamnet,
så här: $a++, och i prefix
skrivs den före variabelnamnet, så här:
++$a. Låt oss titta på exempel
för att se skillnaden mellan de två sätten.
I nästa exempel kommer det första echo att skriva ut
0, eftersom utskriften till skärmen
sker först, och först därefter ökas variabeln:
<?php
$num = 0;
echo $num++; // skriver ut 0, eftersom variabeln ökas först efter echo
echo $num; // skriver ut 1 - variabeln har ändrats
?>
Och nu kommer variabeln att ökas först, och först därefter sker utskriften till skärmen:
<?php
$num = 0;
echo ++$num; // skriver ut 1 - variabeln ökades omedelbart
?>
Detta beteende gäller inte bara för utskrift till skärmen, utan också för tilldelning:
<?php
$num1 = 0;
$num2 = $num1++; // till variabeln $num2 tilldelas 0
echo $num2; // skriver ut 0
echo $num1; // skriver ut 1 - variabeln $num1 ändrades efter tilldelningen till $num2
?>
Låt oss nu ändra från postfix-form till prefix-form:
<?php
$num1 = 0;
$num2 = ++$num1; // till variabeln $num2 tilldelas 1
echo $num2; // skriver ut 1
?>
Om vår operation utförs på en separat rad, så finns det ingen skillnad mellan prefix- och postfix- formerna:
<?php
$num = 0;
++$num;
$num++;
echo $num; // skriver ut 2
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num = 3;
echo ++$num;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num = 3;
echo $num++;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num = 3;
echo --$num;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num = 3;
echo $num--;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num1 = 3;
$num2 = ++$num1;
echo $num1;
echo $num2;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num1 = 3;
$num2 = $num1++;
echo $num1;
echo $num2;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num1 = 3;
$num2 = --$num1;
echo $num1;
echo $num2;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num1 = 3;
$num2 = $num1--;
echo $num1;
echo $num2;
?>
Utan att köra koden, bestäm vad som skrivs ut på skärmen:
<?php
$num1 = 3;
$num1++;
$num2 = $num1--;
echo $num1++;
echo --$num2;
?>