eval
(PHP 4, PHP 5, PHP 7, PHP 8)
eval - Π ΠΎΠ·ΡΡΠ½ΡΡ ΡΡΠ΄ΠΎΠΊ ΡΠΊ PHP-ΠΊΠΎΠ΄ Ρ Π²ΠΈΠΊΠΎΠ½ΡΡ ΠΉΠΎΠ³ΠΎ
ΠΠΏΠΈΡ
eval(string $code): mixed
ΠΠΈΠΊΠΎΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ code
ΡΡΠ΄ΠΎΠΊ ΡΠΊ ΠΊΠΎΠ΄ PHP.
ΠΠΈΠΊΠΎΠ½ΡΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ΄ ΡΡΠΏΠ°Π΄ΠΊΠΎΠ²ΡΡ ΡΡ ΠΆ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Π·ΠΌΡΠ½Π½ΠΎΡ, ΡΠΎ Ρ ΡΡΠ΄ΠΎΠΊ, Π½Π° ΡΠΊΠΎΠΌΡ ΠΌΠΎΠ²Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ eval() Π±ΡΠ»Π° Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Π½Π°. ΠΡΠ΄Ρ-ΡΠΊΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΡΡΠΎΠΌΡ ΡΡΠ΄ΠΊΡ Π·ΠΌΡΠ½Π½Ρ Π±ΡΠ΄ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠΈΡΠ°Π½Π½Ρ ΡΠ° Π·ΠΌΡΠ½ΠΈ Ρ ΠΊΠΎΠ΄Ρ, ΡΠΎ Π²ΠΈΠΊΠΎΠ½ΡΡΡΡΡΡ. ΠΠ΄Π½Π°ΠΊ ΡΡΡ ΠΎΠ³ΠΎΠ»ΠΎΡΠ΅Π½Ρ Ρ ΡΡΠΎΠΌΡ ΠΊΠΎΠ΄Ρ ΡΡΠ½ΠΊΡΡΡ ΡΠ° ΠΊΠ»Π°ΡΠΈ ΠΎΡΡΠΈΠΌΠ°ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ. ΠΠΎΠ²ΠΎΡΡΡΠΈ ΡΠ½Π°ΠΊΡΠ΅, ΠΊΠΎΠΌΠΏΡΠ»ΡΡΠΎΡ ΡΠΎΠ·ΡΡΠ½ΠΈΡΡ Π²ΠΈΠΊΠΎΠ½ΡΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΊ, ΡΠΊΠ±ΠΈ ΡΠ΅ Π±ΡΠ² ΠΏΡΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉΡΠ°ΠΉΠ».
ΠΠ°ΡΡΠ΅ΡΠ΅ΠΆΠ΅Π½Π½Ρ
ΠΠΎΠ²Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ eval() ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ Π΄ΡΠΆΠ΅ Π½Π΅Π±Π΅Π·ΠΏΠ΅ΡΠ½ΠΎΡΠΎΡΠΊΡΠ»ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΠ½ΡΠ²Π°ΡΠΈ Π΄ΠΎΠ²ΡΠ»ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ . Π’ΠΎΠΌΡ Π²ΡΠ΄ ΡΠΎΠ±ΠΎΡΠΈ Π· Π½Π΅Ρ ΡΡΡΠΈΠΌΡΡΡΡΡΡ. Π―ΠΊΡΠΎ ΡΠ΅ΡΠ΅Π»ΡΠ½ΠΈΠΉ ΠΏΠΎΡΡΠΊ ΡΠ½ΡΠΈΡ ΡΡΡΠ΅Π½Ρ ΠΏΠΎΠΊΠ°Π·Π°Π², ΡΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ Π½Π΅ΠΌΠ°Ρ, ΡΠ²Π°ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΡΡ, ΡΠΎΠ± Π΄ΠΎ Π½Π΅Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΠΈΡΡ Π΄Π°Π½Ρ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ° Π±Π΅Π· ΡΡ Π½ΡΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡ ΠΏΠΎΠΏΠ΅ΡΠ΅Π΄Π½ΡΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΡΡΠΊΠΈ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ²
code
Π ΡΠ΄ΠΎΠΊ ΠΊΠΎΠ΄Ρ PHP, ΡΠΎ Π²ΠΈΠΊΠΎΠ½ΡΡΡΡΡΡ.
ΠΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π±ΡΡΠΈ ΠΎΠ±Π³ΠΎΡΠ½ΡΡΠΈΠΉ ΡΠ°ΠΊΠΈΠΌ, ΡΠΎ Π²ΡΠ΄ΠΊΡΠΈΠ²Π°ΡΡΡΡΡ Ρ Π·Π°ΠΊΡΠΈΠ²Π°ΡΡΡΡΡ ΡΠ΅Π³Π°ΠΌΠΈ PHP, ΡΠΎΠ±ΡΠΎ ΡΡΠ΄ΠΎΠΊ ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π±ΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, ΡΠ°ΠΊΠΈΠΉ: 'echo "ΠΡΠΈΠ²ΡΡ!";
, Π°Π»Π΅ Π½Π΅ ΡΠ°ΠΊΠΈΠΉ ''
. ΠΠΎΠΆΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΠΈΠΊΠ°ΡΠΈΡΡ ΠΌΡΠΆ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ PHP- ΡΠ° HTML-ΠΊΠΎΠ΄Ρ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄: 'echo "ΠΠΎΠ΄ PHP!"; ?>ΠΠΎΠ΄ HTML
ΠΠΎΠ΄, ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡΡ, ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π±ΡΡΠΈ Π²ΡΡΠ½ΠΈΠΌ Π²ΠΈΠΊΠΎΠ½ΡΠ²Π°Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ PHP. Π¦Π΅ ΠΎΠ·Π½Π°ΡΠ°Ρ, ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ ΠΌΠ°ΡΡΡ Π±ΡΡΠΈ ΡΠΎΠ·Π΄ΡΠ»Π΅Π½Ρ ΠΊΡΠ°ΠΏΠΊΠΎΡ Π· ΠΊΠΎΠΌΠΎΡ (;). ΠΡΠΈ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ ΡΡΠ΄ΠΊΠ° `'echo "ΠΡΠΈΠ²ΡΡ!"'`Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°, Π° ΡΡΡΠΎΠΊΠ°`'echo "ΠΡΠΈΠ²ΡΡ!";` Π±ΡΠ΄Π΅ ΡΡΠΏΡΡΠ½ΠΎ Π²ΠΈΠΊΠΎΠ½Π°Π½ΠΎ. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°`return` ΠΏΡΠΈΠΏΠΈΠ½ΡΡ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ. ΠΠΎΠ΄ Π· ΡΡΠ΄ΠΊΠ° Π±ΡΠ΄Π΅ Π²ΠΈΠΊΠΎΠ½Π°Π½ΠΈΠΉ Ρ ΡΡΠΉ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ, Π² ΡΠΊΡΠΉ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ **eval()**. Π’ΠΎΠΌΡ Π·ΠΌΡΠ½Π½Ρ, ΡΠΊΡ Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Ρ ΡΠΈ Π·ΠΌΡΠ½Π΅Π½Ρ Ρ Π½ΡΠΉ, Π·Π±Π΅ΡΠ΅ΠΆΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΡΡΡ ΠΏΡΡΠ»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½Ρ Π²ΠΈΠΊΠ»ΠΈΠΊΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ **eval()** ### ΠΠ½Π°ΡΠ΅Π½Π½Ρ, ΡΠΎ ΠΏΠΎΠ²Π΅ΡΡΠ°ΡΡΡΡΡ ΠΠΎΠ²Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ **eval()** ΠΏΠΎΠ²Π΅ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½Π½Ρ **`null`**, Π°Π±ΠΎ Π·Π½Π°ΡΠ΅Π½Π½Ρ, ΡΠΊΠ΅ ΠΏΠΎΠ²Π΅ΡΠ½ΡΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΡΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Π½ΠΈΠΉ Ρ Π²ΠΈΠΊΠΎΠ½ΡΠ²Π°Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ, `return`. ΠΠΎΡΠΈΠ½Π°ΡΡΠΈ Π· PHP 7, ΡΠΊΡΠΎ Ρ ΠΊΠΎΠ΄Ρ, ΡΠΎ Π²ΠΈΠΊΠΎΠ½ΡΡΡΡΡΡ, ΠΏΡΠΈΡΡΡΠ½Ρ ΠΏΠΎΠΌΠΈΠ»ΠΊΠ°, ΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ **eval()** Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ Π²ΠΈΠ½ΡΡΠΎΠΊ "ParseError". ΠΠΎ PHP 7 Ρ ΡΠ°ΠΊΠΈΡ
Π²ΠΈΠΏΠ°Π΄ΠΊΠ°Ρ
ΠΏΠΎΠ²Π΅ΡΡΠ°Π»ΠΎΡΡ Π»ΠΎΠ³ΡΡΠ½Π΅ Π·Π½Π°ΡΠ΅Π½Π½Ρ **`false`** Ρ ΡΡΠΈΠ²Π°Π»ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½Π΅ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ Π½Π°ΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Ρ. ΠΠ΅ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ Π·Π»ΠΎΠ²ΠΈΡΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΊΡ ΠΏΠ°ΡΡΠ΅ΡΠ° Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ **eval()** ΡΡΠ½ΠΊΡΡΡΡ [set_error_handler()](function.set-error-handler.md) ### ΠΡΠΈΠΊΠ»Π°Π΄ΠΈ **ΠΡΠΈΠΊΠ»Π°Π΄ #1 ΠΡΠΈΠΊΠ»Π°Π΄ ΡΡΠ½ΠΊΡΡΡ **eval()**β ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°** ```php <?php $string = 'ΡΠ°ΡΠΊΠ°'; $name = 'ΠΊΠΎΡΠ΅'; $str = 'ΠΡΠΎ $string Ρ ΠΌΠΎΠΈΠΌ $name.'; echo $str. "\n"; eval("\$str = \"$str\";"); echo $str. "\n"; ?> ``` Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Ρ: ``` ΠΡΠΎ $string Ρ ΠΌΠΎΠΈΠΌ $name. ΠΡΠΎ ΡΠ°ΡΠΊΠ° Ρ ΠΌΠΎΠΈΠΌ ΠΊΠΎΡΠ΅. ``` ### ΠΡΠΈΠΌΡΡΠΊΠΈ > **ΠΠ°ΡΠ²Π°ΠΆΠ΅Π½Π½Ρ**: ΠΡΠΊΡΠ»ΡΠΊΠΈ ΡΠ΅ ΠΌΠΎΠ²Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ, Π° Π½Π΅ ΡΡΠ½ΠΊΡΡΡ, ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ½Π° Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΠΈ ΡΠΊ [Π·ΠΌΡΠ½Π½Ρ ΡΡΠ½ΠΊΡΡΡ](functions.variable-functions.md) Π°Π±ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΠΈ ΡΠΊ [ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ](functions.arguments.md#functions.named-arguments) **ΠΡΠ΄ΠΊΠ°Π·ΠΊΠ°** Π―ΠΊ Ρ Π²ΡΠ΅, ΡΠΎ Π²ΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ Π±ΡΠ°ΡΠ·Π΅Ρ, [ΡΡΠ½ΠΊΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ](book.outcontrol.md) ΠΌΠΎΠΆΠ½Π° Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΠΈ, ΡΠΎΠ± ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠΏΠΈΡΠΈ Π΄Π°Π½Ρ, ΡΠΎ Π²ΠΈΠ²ΠΎΠ΄ΡΡΡΡΡ ΡΡΡΡ ΡΡΠ½ΠΊΡΡΡΡ, Ρ Π·Π±Π΅ΡΡΠ³Π°ΡΠΈ ΡΡ
, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄ Ρ ΡΡΠ΄ΠΎΠΊ (string). > **ΠΠ°ΡΠ²Π°ΠΆΠ΅Π½Π½Ρ** : > > Π£ ΡΠ°Π·Ρ ΡΠ°ΡΠ°Π»ΡΠ½ΠΎΡ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ Ρ ΠΊΠΎΠ΄Ρ, ΡΠΎ Π²ΠΈΠΊΠΎΠ½ΡΡΡΡΡΡ, ΠΏΡΠΈΠΏΠΈΠ½ΡΡΡΡΡΡ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ Π²ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΡ. ### ΠΠΈΠ²ΡΡΡΡΡ ΡΠ°ΠΊΠΎΠΆ - [call_user_func()](function.call-user-func.md) - ΠΠΈΠΊΠ»ΠΈΠΊΠ°Ρ callback-ΡΡΠ½ΠΊΡΡΡ, Π·Π°Π΄Π°Π½Ρ Ρ ΠΏΠ΅ΡΡΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ