declare
(PHP 4, PHP 5, PHP 7, PHP 8)
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ declare ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ
Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ declare
Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ:
Π§Π°ΡΡΡ directive Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π±Π»ΠΎΠΊΠ° declare.
PHP ΠΏΠΎΠΊΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ:
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ,
ΠΏΠΎΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°.
ΠΠ΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ:
PHP Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠ°ΡΡΡ statement Π±Π»ΠΎΠΊΠ° declare β
ΠΊΠ°ΠΊ PHP Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ
Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ
Π² Π±Π»ΠΎΠΊΠ΅ directive.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ declare ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ
Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π²Π΅ΡΡ ΠΊΠΎΠ΄ Π·Π° Π½Π΅ΠΉ
(ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ declare Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ
Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ»).
Π’ΠΈΠΊΠΈ
Π’ΠΈΠΊ β ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠ΅
N Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΡΠ΅Ρ
ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° declare.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ N ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ
ΠΊΠ°ΠΊ ticks=N Π²Π½ΡΡΡΠΈ
ΡΠ°ΡΡΠΈ directive Π±Π»ΠΎΠΊΠ° declare.
ΠΠ°ΡΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΠΊΡ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ.
Π‘ΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ΅,
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ register_tick_function().
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅,
ΡΡΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΊΠ° ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΊΠ°
<?php
declare(ticks=1);
// Π€ΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ PHP Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ΅
function tick_handler()
{
echo "PHP Π²ΡΠ·Π²Π°Π» ΡΡΠ½ΠΊΡΠΈΡ tick_handler()\n";
}
register_tick_function('tick_handler'); // ΠΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΈΠΊΠ°
$a = 1; // ΠΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΈΠΊΠ°
if ($a > 0) {
$a += 2; // ΠΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΈΠΊΠ°
print $a; // ΠΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΈΠΊΠ°
}
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ register_tick_function()
ΠΈ unregister_tick_function().
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° encoding ΡΠΌΠ΅Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠΊΡΠΈΠΏΡΠ°
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠ°
<?php
declare(encoding='ISO-8859-1');
// Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈΠ΄ΡΡ ΠΊΠΎΠ΄
ΠΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ declare
Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌΠΈ ΠΈΠΌΡΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊ: declare(encoding='...');
Π³Π΄Π΅ ... β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ. Π ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌΠΈ ΠΈΠΌΡΠ½
Π·Π°ΠΏΠΈΡΡ declare(encoding='...') {} Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΠ°ΡΡΠ΅ΡΠ°.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ zend.script_encoding.