Dit is een verzameling van vragen die af en toe opkomen over syntaxis in PHP. Dit is ook een Community Wiki, dus iedereen wordt uitgenodigd om mee te werken aan het onderhouden van deze lijst.
Vroeger was het moeilijk om vragen te vinden over operatoren en andere syntax tokens.¹
Het belangrijkste idee is om links te hebben naar bestaande vragen op Stack Overflow, zodat het's makkelijker is voor ons om ernaar te verwijzen, niet om inhoud van de PHP handleiding over te nemen.
Opmerking: Sinds januari 2013, ondersteunt Stack Overflow wel speciale tekens. Omring de zoektermen gewoon met aanhalingstekens, bijv. [php] "==" vs "=="
Als iemand u hierheen heeft verwezen omdat u een dergelijke vraag heeft gesteld, kunt u hieronder de specifieke syntaxis vinden. De gelinkte pagina's naar de PHP manual samen met de gelinkte vragen zullen dan waarschijnlijk uw vraag beantwoorden. Als dat zo is, wordt u aangemoedigd om het antwoord te upvote. Deze lijst is niet bedoeld als vervanging voor de hulp die anderen bieden.
&
Bitwise Operators of References
=&
Referenties
??
Null Coalesce Operator (sinds PHP 7)
?string
?int
?array
?bool
?float
Nullable return type declaration (sinds PHP 7.1)
:
Alternatieve syntaxis voor controlestructuren, Ternary Operator
`` Namespaces
=>
Arrays
<=>
Vergelijkingsoperatoren (sinds PHP 7.0)
+=
en -=
Toewijzingsoperatoren
++
en --
Oplopende/afnemende operatoren
,
Variabele Verklaringen`` `` Uitvoeringsoperator
<?=
Korte Open Tags
[]
Arrays (korte syntaxis sinds PHP 5.4)
$var = []
lege array...
Argument uitpakken (sinds PHP 5.6)**
Exponentiation (sinds PHP 5.6)Incrementing / Decrementing Operators
++
verhogingsoperator
--
afnemende operator
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.
Deze kunnen voor of na de variabele komen.
Indien ze voor de variabele worden geplaatst, wordt de toename/afname operatie eerst op de variabele uitgevoerd, daarna wordt het resultaat teruggegeven. Indien ze na de variabele worden geplaatst, wordt de variabele eerst geretourneerd, waarna de toename/afname wordt uitgevoerd.
Bijvoorbeeld:
$apples = 10;
for ($i = 0; $i < 10; ++$i) {
echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}
In het bovenstaande geval wordt ++$i
gebruikt, omdat dat sneller is. $i++
zou dezelfde resultaten geven.
Pre-increment is een beetje sneller omdat het de variabele echt verhoogt en daarna 'retourneert' het resultaat. Post-increment creëert een speciale variabele, kopieert daar de waarde van de eerste variabele en pas nadat de eerste variabele is gebruikt, vervangt het zijn waarde door die van de tweede.
Je moet echter $appels--
gebruiken, want eerst wil je het huidige aantal appels weergeven, en daarna wil je er één van aftrekken.
Je kunt in PHP ook letters ophogen:
$i = "a";
while ($i < "c") {
echo $i++;
}
Als z
is bereikt, is aa
de volgende, enzovoort.
Merk op dat karaktervariabelen wel kunnen worden verhoogd maar niet verlaagd en dat zelfs dan alleen gewone ASCII karakters (a-z en A-Z) worden ondersteund.
Stack Overflow Posts:
Wat is een bit? Een bit is een weergave van 1 of 0. In principe OFF(0) en ON(1)
Wat is een byte? Een byte bestaat uit 8 bits en de hoogste waarde van een byte is 255, wat zou betekenen dat elk bit gezet is. We zullen bekijken waarom een byte's maximum waarde 255 is.
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
Deze weergave van 1 byte
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 byte)
&
$a = 9;
$b = 10;
echo $a & $b;
Dit zou het getal 8 opleveren. Waarom? Nou, laten we eens kijken met behulp van onze tabel voorbeeld.
-------------------------------------------
| 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|
-------------------------------------------
Je ziet in de tabel dat de enige bit die ze delen de 8 bit is.
Tweede voorbeeld
$a = 36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111
De twee gedeelde bits zijn 32 en 4, die bij elkaar opgeteld 36 opleveren.
|
$a = 9;
$b = 10;
echo $a | $b;
Dit zou het getal 11 weergeven. Waarom?
-------------------------------------------
| 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|
-------------------------------------------
Je zult zien dat we 3 bits hebben ingesteld, in de 8, 2, en 1 kolommen. Tel die bij elkaar op: 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"