ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Β«=Β». ΠΠ°ΠΆΠ΅ΡΡΡ,
ΡΡΠΎ ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Β«ΡΠ°Π²Π½ΠΎΒ». ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»Π΅Π²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄
ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΡΠΎ Π΅ΡΡΡ Π»Π΅Π²ΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ Β«Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β»).
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π’ΠΎ Π΅ΡΡΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Β«$a = 3Β» Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ 3.
ΠΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΡΠΊΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅:
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅
<?php
$a = ($b = 4) + 5; // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $a ΡΠ°Π²Π½ΠΎ 9, Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $b ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 4
var_dump($a);
?>
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Β«ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΒ»
Π΄Π»Ρ Π²ΡΠ΅Ρ
Π±ΠΈΠ½Π°ΡΠ½ΡΡ
Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ,
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ
ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΈΠΌΠ΅Ρ #2 Π‘ΠΎΡΡΠ°Π²Π½ΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅
<?php
$a = 3;
$a += 5; // Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $a Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 8, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ: $a = $a + 5;
$b = "ΠΡΠΈΠ²Π΅Ρ";
$b .= "-ΠΏΡΠΈΠ²Π΅Ρ!"; // Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $b Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "ΠΡΠΈΠ²Π΅Ρ-ΠΏΡΠΈΠ²Π΅Ρ!", ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ $b = $b . "-ΠΏΡΠΈΠ²Π΅Ρ!";
var_dump($a, $b);
?>
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Π½ΠΎΠ²ΡΡ
(ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ), ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΡΠ°Π·ΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΌΠ΅ΡΡΠ½ΡΠΌ
ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π³ΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π΄Π»ΠΈΠ½Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ PHP ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β ΠΎΠ±ΡΠ΅ΠΊΡΡ
(object), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ
ΡΠ΅ΡΠ΅Π· ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ clone.
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΡΠΎΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
$var = &$othervar;.
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
Π½Π° ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ #3 Assigning by reference
<?php
$a = 3;
$b = &$a; // $b β ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $a
print "$a\n"; // ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ 3
print "$b\n"; // ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ 3
$a = 4; // ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $a
print "$a\n"; // ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ 4
print "$b\n"; // ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ 4, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $b β ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $a,
// Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $a ΡΡΠΏΠ΅Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ
?>
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ new
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
new ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΡΠΈΠΌΠ΅Ρ #4 ΠΠΏΠ΅ΡΠ°ΡΠΎΡ new ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅
<?php
class C {}
$o = &new C();
?>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
Parse error: syntax error, unexpected token ";", expecting "("
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΡΡΠ»ΠΊΠ°Ρ
ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ
ΡΠ°Π·Π΄Π΅Π» Β«ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊΒ».
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ
ΠΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅