Dette er en samling av spørsmål som dukker opp nå og da om syntaks i PHP. Dette er også en Community Wiki, så alle er invitert til å delta i vedlikeholdet av denne listen.
Det pleide å være vanskelig å finne spørsmål om operatorer og andre syntaks-tokens.¹
Hovedideen er å ha lenker til eksisterende spørsmål på Stack Overflow, så det er lettere for oss å referere til dem, ikke å kopiere over innhold fra PHP Manual.
Merk: Siden januar 2013, Stack Overflow støtter spesialtegn. Bare omgi søkeordene med anførselstegn, for eksempel [php] "==" vs "==="
.
Hvis du har blitt henvist hit av noen fordi du har stilt et slikt spørsmål, finner du den aktuelle syntaksen nedenfor. De lenkede sidene til PHP-manualen sammen med de lenkede spørsmålene vil sannsynligvis svare på spørsmålet ditt. I så fall oppfordres du til å stemme opp svaret. Denne listen er ikke ment som en erstatning for hjelpen andre har gitt.
&
Bitvise operatorer eller Referanser.
??
Null Coalesce Operator (siden PHP 7)
?string
?int
?array
?bool
?float
Nullable return type deklarasjon (siden PHP 7.1)
:
Alternativ syntaks for kontrollstrukturer, Ternær operator Ternær operator
::
Scope Resolution Operator Operatør for oppløsning av omfang
<=>
Sammenligningsoperatorer (siden PHP 7.0)
+=
og -=
Tilordningsoperatorer, Aritmetiske operatorer.
++
og --
Incrementing/Decrementing Operators Inkrementerende/reduserende operatører
,
Variable Declarations Variabelerklæringer[]
Arrays (kort syntaks siden PHP 5.4)
$var = []
empty array...
Utpakking av argumenter (siden PHP 5.6)**
Eksponentialisering (siden PHP 5.6)Økende/reduserende operatører **[Økende/reduserende operatører
++
inkrementoperator
--
dekrementeringsoperator
Example Name Effect
---------------------------------------------------------------------
++$a Pre-increment Increments $a by one, then returns $a.
$a++ Post-increment Returns $a, then increments $a by one.
--$a Pre-decrement Decrements $a by one, then returns $a.
$a-- Post-decrement Returns $a, then decrements $a by one.
Disse kan komme før eller etter variabelen.
Hvis de settes før variabelen, utføres inkrement/deskrement-operasjonen på variabelen først, og deretter returneres resultatet. Hvis de settes etter variabelen, returneres variabelen først, og deretter utføres inkrement-/deskrementoperasjonen.
For eksempel
$apples = 10;
for ($i = 0; $i < 10; ++$i) {
echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}
I tilfellet ovenfor brukes ++$i
, siden det er raskere. $i++
ville gitt samme resultat.
Pre-increment er litt raskere fordi den virkelig inkrementerer variabelen og deretter 'returnerer' resultatet. Post-increment oppretter en spesiell variabel, kopierer verdien av den første variabelen dit, og først etter at den første variabelen er brukt, erstatter den verdien med den andre.
Du må imidlertid bruke $ epler--
, siden du først vil vise det nåværende antallet epler, og deretter vil du trekke ett fra det.
Du kan også inkrementere bokstaver i PHP:
$i = "a";
while ($i < "c") {
echo $i++;
}
Når z
er nådd er aa
neste, og så videre.
Merk at tegnvariabler kan inkrementeres, men ikke dekrementeres, og at bare vanlige ASCII-tegn (a-z og A-Z) støttes.
Stack Overflow Posts:
Hva er en bit? En bit er en representasjon av 1 eller 0. I utgangspunktet AV(0) og PÅ(1).
Hva er en byte? En byte består av 8 biter, og den høyeste verdien av en byte er 255, noe som betyr at alle bitene er satt. Vi vil se på hvorfor en byte&# 39s maksimale verdi er 255.
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
Denne representasjonen av 1 byte
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 Byte)
$a = 9;
$b = 10;
echo $a & $b;
Dette vil gi tallet 8. Hvorfor det? Vel, la oss se ved hjelp av vårt tabelleksempel.
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
| $a | 0| 0| 0| 0| 1| 0| 0| 1|
-------------------------------------------
| $b | 0| 0| 0| 0| 1| 0| 1| 0|
-------------------------------------------
| & | 0| 0| 0| 0| 1| 0| 0| 0|
-------------------------------------------
Så du kan se fra tabellen at den eneste biten de deler sammen er 8-biten.
Andre eksempel
$a = 36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111
De to delte bitene er 32 og 4, som når de legges sammen gir 36.
$a = 9;
$b = 10;
echo $a | $b;
Dette vil gi tallet 11. Hvorfor?
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
| $a | 0| 0| 0| 0| 1| 0| 0| 1|
-------------------------------------------
| $b | 0| 0| 0| 0| 1| 0| 1| 0|
-------------------------------------------
| | | 0| 0| 0| 0| 1| 0| 1| 1|
-------------------------------------------
Du vil legge merke til at vi har 3 biter satt, i kolonnene 8, 2 og 1. Legg dem sammen: 8+2+1=11.
Syntax Name Description
x == y Equality True if x and y have the same key/value pairs
x != y Inequality True if x is not equal to y
x === y Identity True if x and y have the same key/value pairs
in the same order and of the same types
x !== y Non-identity True if x is not identical to y
++ x Pre-increment Increments x by one, then returns x
x ++ Post-increment Returns x, then increments x by one
-- x Pre-decrement Decrements x by one, then returns x
x -- Post-decrement Returns x, then decrements x by one
x and y And True if both x and y are true x=6 y=3
(x < 10 and y > 1) returns true
x && y And True if both x and y are true x=6 y=3
(x < 10 && y > 1) returns true
a . b Concatenation Concatenate two strings: "Hi" . "Ha"