PhpStorm
- 1 year ago
- 0
- 0
PHP ( /pi:.e?t?.pi:/ ????. PHP: Hypertext Preprocessor — «PHP: ???????????? ??????????? »; ????????????? PHP/FI (Personal Home Page / Form Interpreter), ? ????? ????????? Personal Home Page Tools — «??????????? ??? ???????? ???????????? ???-???????») — C-???????? ?????????? ???? ?????? ??????????, ?????????? ??????????? ??? ?????????? ???-??????????. ? ????????? ????? ?????????????? ??????????? ???????????? ???????-??????????? ? ???????? ????? ?? ??????? ????? ??????, ????????????? ??? ???????? ???????????? ???-?????? .
???? ? ??? ????????????? ( Zend Engine ) ??????????????? ??????? ??????????? ? ?????? ??????? ? ???????? ????? . ?????? ???????????????? ??? ??????????? ????????? , ????????????? ? GNU GPL .
? ??????? ???-????????????????, ? ?????????, ????????? ?????, PHP — ???? ?? ?????????? ????????? ?????? (?????? ? JSP , Perl ? ???????, ????????????? ? ASP.NET ).
???????????? ? ??????? ?????????? ???-?????? ???????????? ???????? ???????? ?????? ?????????? ??????? ? ?????????????? ??????? ??? ?????????? ???-?????????? . ???????? ?? ???:
?? ????????? ?? 2022 ??? ???????????? ??????? ????? ?????????????; ???????? ???????? ?????????? TIOBE , ????????????? ?? ?????? ????????? ??????, ? ??????? 2022 ???? PHP ????????? ?? 10 ????? ?? ???????????? ????? ?????? ???????????????? .
?????? ? LAMP — ???????????????? ????? ?? ??? ???????? ? ???????? ???-?????? ( Linux , Apache , MySQL , PHP), ? ????? LEMP - ?? ????? ???????????????? ????? ?? ( Linux , Nginx , MySql , PHP).
????? ??????, ???????????? PHP — Facebook , Wikipedia , Yahoo! , Baidu .
???? ????????????? ???????????? HTTP Cookies ? ???????????? ?? ??????????? Netscape. ??? ????????? ????????? ????????? ? ?????? ????????? ????????? ?????? ?? ??????? ???????. ?????? ? Cookies ???????????? ??????????? ??????? (??????). ? ?????? ???? ???? ???????? (????? ??? ????????? ?????? ?????????), ? ??????? ????? ??????? ? ????????????? ?????? ???? ??????, ? ??? ????? ??????????????? — ??????????? ????? serialize (??????? ?????????? ?????????????), PHP-???????.
PHP ?? ???????????? ?? ???????? ?????????? ??????????, ?? ???? ??????????? ? ???????? ??????????? ??? ????????? ????????, ????????????? ??????????, ??????? ???????? (?????????), ?????????? ?????????? ? ????????? ?????????, ? ?. ?. ??-?? ????? ? ???????? ??????? ?????? ????????.
???????? ????????????? ?????????? — ?????????? ????????? ??????????? ???????????? (UI-?????????).
?????????? ??????? ??????? ?? ??? ??????:
??????????? ??????????, ?????, ??? ???????????? ??????? ??? ????????????? ?????? ?????? ??? ????????? ?????????? PHP, ? ????????. ????????, PSV Component Library, — ??????, ????????? ?? ???? ???????????:
???? ????? ? ??????????? ?????? ?????????? ??? GUI PHP:
?????????????? ? ???? ????????? ???????? ?????? Dev PHP-IDE, ??????? ???????????? Kylix ( Delphi ) ? ???????? ?????? ?????????? ? php- ??? ???????? ???????????????? ????????.
??? ???????? ? ???? ???????? ????, ????????? ???????????? ? ?????????? ???????? HTML-???????.
??????? ???? ???????????? ? 2002 ????, ?????? ????? 3 ?????????? ??????, ?? ?????????? ?? ???????????? — ???????????? ??-?? ?????? ???????? ???????????? ? ??????????????.
????? DevPHP IDE ????????? ?????????? — ????? ??????????? ??? ?? ???? php4delphi ? ?????????? ??????????? (???-????????, ?????????, ????????), ????????? ?? ??????? ? ??????? ??????? ??????, ?????? ?? ??????? ????? ? ??????? ?????????? : ???? ??????????? ???????????? ???????, ???????? ????? ???-???????????, ????????????? ????? ? ???-???????? ?? ?????? ?????????, ????????? ????????? ??????, ???????? ?????????, ??? ????????? ?????????? ? ?????????? ???. ? ??????? Delphi XE ?????????? ???????? ???????? RADPHP Xe. ????? ???? ?????? ????? ?????????? Embarcadero Delphi, ? ?????? ??? ?????? ??????????? ???? ?????????????? ?? ?????????????? ????.
? 2009 ???? ?? ???? php4delphi ???????? ?????????? ????? ??? ???????? ??????????? PHP-??????????, ? ?????????? ??????? ????? ????????????? ????????? ???????. ????? ???????? ???????? PHP DevelStudio, ?????? ?????????????? ??????? ????? 0.1.7. DevelStudio ????? ????????? ?????????? ??????????? ? ?????? ???????????? ? ???????? ?? ?????????? PHP 4. ?? ?????? ?????? DevelStudio ???????? ????????? PHP 5. ???? ????????? ??????, ??????????? ????????????? ????????? ? ?????????. ??? ?????? ???????? ???? ????????, ?????????? ?????? ????????? ? ????????? ?? ?????? ???? ??????? ? ????? ?????????????????? ???????????????.
?????? ?????? DevelStudio ??? ?? ???????? ????? ??????????? AlphaControls, ?????????? ???? ?? ????? ???????????? ??? ???????? ??????????? ???????? ? ???? ?? ???????? ? ??????????. ?????????? ?? ?? ????? ?????????? (MacAffee, AVG , Avira ) ????? ???????????? ????? ???????????????? ? DevelStudio ????????? ??? ??????.
????? ????????? ????? ????? AlphaControls ????????? ? ??????? ? ????????????? DevelStudio, ? ????? ??????????? ??? ????????? ?????? ?? ?????, ?????? ?????????? ? ??? ?????????????? ??????, ??????? ??????? ? ?????? ? ???? ??? ?? ?????????????? ?????????.
?? ?????? 2012 ???? ????? ????????? ?????? ????? — 3.0.2, ??? ???????? ????? ????? ???????????, ? ??? ????? ??????? Chromium ?????? IE , ??? ????????? ???????? ???-????????????? ? ????????????? ????? «????????». ?? ??? ?????? ?????????? ???????? ? «?????????» ???? ???????, ??????? DevelStudio ??? ????? ? ?????????? ????? ?????????? ?????????? ?? ???? ???????? ????? ?????????.
? 2014 ???? ???????? ?????? ??????? ?? ?????????????? ?????, ? ???? ??? ?? ??????? ?????????? . ? ????? 2018 ???? ???????? ??? ??? ???????????? ? ???????? ? GitHub .
? 2019 ???? ?????????? ?????????? ? ????????? DevelStudio ? ????? ????????? ???????? ??????????????? ?????, ?????????? ???? ??? ????? ????????? ??? ?????????? ? ??????????????. ??-?? ????? ?? ?????????? ?????? ?? ?????????????? ?????????? (DCEF, PHP4Delphi, TSizeCtrl, SynEdit) ????? ??? ??????, ? ???? ?? ??????? ? ????????? ????? ???? ?????????????? ?? ??????? ???????? ?????. ? ????? ??????? DevelStudio ?????????? ??????????? ??????????.
??????????? ? ???? ??????? ??????????? DevelStudio ????? ????????? «????????????» ?????????? ?????. ?? ???? ?? ?????? ??????????? ?????????? JavaFX , ? ?????????? ????? ????????? ????? ?????, ? ?????????? CSS , ?? ??? ?????? ????????? ?????????? Zend PHP — ?????? ??? ??????? ?? ??????????? ????? jPHP. ??? ???????????? ????????, ?????? ?? JVM , JIT -??????????, ????????? ??????? , ??????????????? ? ????????-??????????????? ??????????? ??????????.
? 16-? ?????? ????? DevelNext ???????? ????????? php 7, ? ??????????? ? ???? jPHP ??? ???????? ??????????? ??? ?????????? ??? ?? Android .
?? ?????? ?????? ????? ? ?????????? ???????? ??? 2020 ??????? (????? 17-?).
? 2015 ???? ????????? ???????? ????? ??????? ????????? ?????????? ??????????? ? ?????? ?????????? php_qml, ??? ?????? ??????????? ???????????? ??????? ?? ?????????? QT , ?? ???????? ??? ?????? ??? Windows.
? ????? ???????? ?????????? PHPQt, ?????? ?????? ?? ???????? ??????? ???????? ?? ??????? ???-?????????????, ??????? ????? ????? ?????????? ???????? ??????????.
28 ???? 2015 ???? ??? ??????????? ?????? ??????? ??????????? ????????, ?? ??? ?????? ??? ??? ??????? ??????????? ????????(?????????), ??????? ?????????? php-??? ? ????? (??????? DevelStudio), ? ???? ??????????? ?? Windows API, ?? ???? ?????? ?????????????? ??? ????? ??? ??????? ? ???????????????, ???? ?????? ??????????? php-????. ? ????? ??????? ?????? ????? ???????? PQEngine,
3 ??????? 2016 ???? ????? ????? ?????? ??????????? ?????????? (PqBuilder), ??? ??????? ?? ???? PlastiQ ? ???? ????????? ??? ?????????, ?? ??? ??????, php 7, ??????? ???????? ????? ??????????? ?????????? ? ??? ?? ????????? ??????? PqEngine.dll ?????? ? ??????????? ??????, ?????? ????? ?????????? ?????????? ????? ??????????? ????????? — ??? ?????, ? ?? ????????? ? PQEngine.dll. ????? ??? ??? ?????????? ??? ????????????? ? ??????? ????????? ? ????????????? ???????????? Qt.
? ?????????? ?????? ?????? ?????? ???? ??????????? ??? ????? Qt Creator , ? ?????????? ???? ?????-??????? ????????????? ???? ????? ???????? ??????? ?????????. ???????? ??????????? ???????? ??????????, ????????? ? ????????? ???? ? ?????? ??????????? ????????????. ? ????? ??????? ??????? ????? ??? ???????? ????? PqStudio, ?? ?? ?????????? ?? ????? ??????.
? 2018 ???? ???????? ??????, ???????????? ??????????? Windows Forms (.NET Framework) ? PHP 7. ??? ?????????? ?????????? ??????? ??????? ? ?????? [ ?????? ] . ?? ??????? ?????? ? ?????? ???????? ??????????? ??? [ ?????? ] ??????? ??? ???. ????? ????????? ?? ?????? ????????? ??????????. ? ???????????? ????? ?? ????????? ??????????? php7ts.dll.
????? ?????????? ?????????? ? ??? ???????????????? ?????????? — ??????????? PHP ? ??????? ?? ?????? ????? ????????????????: Phalanger (C#, php ? 5.4 ?? 7), Peachpie] (C#, php 7), PHP4Delphi (Lazarus, Delphi, C#, C, C++, php 5.6, JPHP (Java, php 7.0), PHPly (Python, php 5.6)
? 1994 ???? ??????? ??????????? ?????? ??????? ?????????? ?? C ????? CGI-???????? ??? ????? ??????????? ??? ?????? - ?????? , ?????????????? ??????? HTML -??????????. ??????? ?????? ????? Personal Home Page Tools (??????????? ??? ?????? ???????? ???????? ). ?????? ???????????????? ????????? ???????, ? ??????? ?????????? ????? ????????????? ???????? PHP/FI ( ????. Personal Home Page / Forms Interpreter — «???????????? ???????? ???????? / ????????????? ????») .
8 ???? 1995 ???? ????? Personal Home Page (PHP Tools) version 1.0 — ?????? ????????? ?????.
? 1997 ???? ????? ??????????? ????-???????????? ????? ?????? ?????? ???????????, ??????????? ?? C — PHP/FI 2.0. ?? ???????????? ????? 1 % (?????????????? 50 ?????) ???? ????????-??????? ???? .
?????? PHP 3.0 ??????????? ???????????? ???????????, ???????????? ??????????? ????? ? ????? ????? ????????????????. ? 1997 ???? ??? ??????????? ????????????, ???? ??????? ? ???? ??????? , ????????? ?????????? ??? ??????????????. PHP 3.0 ??? ?????????? ??????? ? ???? 1998 ???? .
????? ?? ?????????? ?????? PHP 3.0 ???? ??????????? ?????????? ???? ??????????????? ????????. ???????????? ????????? ????????? ?????????? ??????? ? PHP ????????? ????????? ?????????????, ?????????? ??? ?????? ????????, ??? ???? PHP ??????????? ???????? ? ???????? ??????????? ??? ?????? , ?????????? , ???????????? ??????? ????? API . ??????? ?????????? ????????????? ??????? ? ???????? ???????? ????? ? ?????????????? ????? ??? ????????????. ? ???? ?????? ??????? php ???????????????? ??? «PHP: hypertext Preprocessor», ?????? ??????????? «Personal Home Page».
? ???? 1998 ????, ??????????? ????? ????? ???????????? ?????? PHP 3.0, ???? ??????? ? ???? ??????? ?????? ??????????? ???? PHP. ? ?????? ??????? ?????????? ?????????????????? ??????? ?????????? ? ????????? ??????????? ?????? ???? PHP. ????? ??????, ????????? Zend Engine , ??????? ?????????? ? ????????????? ???????? ? ??????? ??? ??????????? ? ???????? 1999 ???? . PHP 4.0 , ?????????? ?? ???? ?????? ? ????????? ? ????? ????? ?????????????? ???????, ?????????? ????? ? ??? 2000 ???? . ? ?????????? ? ????????? ??????????????????, PHP 4.0 ???? ??? ????????? ???????? ????????????, ????? ??? ????????? ??????, ??????????? ??????, ????? ?????????? ??????? ????????? ???????? ????????????? ?????????? ? ????????? ????? ???????? ???????????.
????? ?????? PHP ???? ???????? ?????????????? 13 ???? 2004 ???? . ????????? ???????? ?????????? ???? Zend ( Zend Engine 2 ), ??? ??????????? ????????? ????????????? ?????????????? . ??????? ????????? ????? ???????? XML . ????????? ???????????? ??????? ??? , ??????? ????? ?? ?????? ????? ? ???????, ???????????? ? Java . ? ?????????, ?????? ?????????? , ????????, ???????? ? ?????????? ????? ? ?????? , ????????????? ????? ? ??????, ?????????? ? ???????????? ????????. ? ??????????? ??????? ????? ???? ??????? ???????????? ???? , ????????? ? ????? ??? ?????????? ????????? ?????????, ????????????? ? ??????????? ????????? ? ????, ??????? ????????? ??? ???????? ?? PHP 5.0.
?????? ?????? PHP ??????????????? ? ??????? 2006 ???? . ???? ??????? ????????? ???????????? , ???, ????????, ?????????? ?? ???? ?????????? ????????? POSIX ? «???????» ??????????????? ????????, ???????? ???????? safe_mode , magic_quotes_gpc ? register_globals ?? ????????????????? ????? php.ini. ????? ?? ???????? ???????? ?????? ???? ????? ????????? ??????? . ?????? ? ????? 2010 ???? ?????????? PHP6 ???? ???????? ???????????????? ??-?? ?????????? ? ?????????? ???????. ???????? ??? PHP6 ????????? ?? ????? , ? ???????? ?????? ?????????? ????? ?????? 5.4.
? 2014 ???? ???? ????????? ???????????, ?? ??????????? ???????? ????????? ?????? ???????? ???????? PHP 7 . ????? ????? ?????? ???????????? ? ???????? ??????? 2015 ???? . ? ????? 2015 ???? Zend ??????????? ??????????? , ? ??????? ??????? ???????? ???????????? PHP 7 .
3 ??????? 2015 ???? ???? ????????? ? ?????? PHP ?????? 7.0.0 .
????? ?????? ???????????? ?? ????????????????? ????? PHP, ??????? ?????????? ?????????? phpng ( ????. PHP Next Generation «????????? ?????????»), ? ??????????????? ? ?????? ?? ?????????? ?????????????????? ? ?????????? ??????????? ?????? . ? ????? ?????? ????????? ??????????? ????????? ??? ???????????? ?? ??????? ?????? , ???????? ???????? ???????????? ????? ??? ?????? , ? ????? ????? ?????????.
13 ???? 2019 ????? ?????? PHP 7.4. ? ???? ???? ????????? ?????????????? ???????? ? ?????????? ???????, ? ????? ???????????? ?????????????? ????????????? ???? ? ?????????????????? ???? ????????? .
PHP ?????? 8.0 ???? ???????? 26 ?????? 2020-?? . ???????? ?????????????? ????? : ????????? union-????? , JIT-?????????? ? ???????? (????? ???????? ??? ?????????), ????? «???????????» switch ???? ???????? ?? «?????????» match ? ??? ???????? ????? ???????? Nullsafe.
9 ???? 2020 ???? ???? ???? (
????.
Dale Hirt), ???????? ??????? PHP ? Microsoft, ? ????????
php.internals
???????? ?????????
? ???, ??? ????? ??????? ?????? PHP 8.0 Microsoft ????????? ????????? ?????????? ????? ????? ???????????????? ???
Windows
. ??????????? Microsoft ?????????? ??????????? ???????? ?????? ?????????????? ??? ?? Windows ? ????????????? ?? ????????????. ? ?????????? ????????????? PHP ????????, ??? ?????? ??? ??????????? ????, ????? ????? ? ????????? ????? ?????????????? ??????? ??? ??????????? ????????? PHP 8.0 ? ???? ??? Windows, ????????, ?????? ??????
.
????????? PHP
???????
?????????? ?????
??
. ????????? ????????, ????? ???
????????????? ???????
? ????
foreach
, ???????????? ??
Perl
.
??????????? ?????? PHP ?????????????? ??????????? ??????? re2c , ??????? ?????????? ??????? ? ????? ???????????? ???????.
??? ????????? ??????????? ??????? ?? ????????? ????????? ?????-???? ??????????, ???????????? ?????? ? ?. ?. ????? ?????? ????? ?????????? ??????????????? ? ?????????
<?php
, ? ????????????? ??????????
?>
. ??????????? ???????? ?? ?????????? ? ??? ????????????? ????????, ????? ???????? ??????? ? ????????? ?????? ???????? ? ????? ?????? ????? ?????????? ????????? ????.
?????????? ????????? Hello world ?? PHP ???????? ????????? ???????:
<?php echo 'Hello, world!';
????? ???????? ????? ???????? ??????? ?????? ??????:
<?='Hello, world!'?>
??????????? ??? ????
<?=
???????????? ??? ??????????? ?????? ???????????, ???????????? ??? ?????? ??????.
????? ???????? ????????, ??? ????
<?=
? ???????? ??????????? ??????
<?php echo
, ?????? ?? ???????? «??????????? ?????» (????? ???
<?
). ??????????? ???? ???? ???????? ??????????? ? ?? ????????????? ?????? ?? ?????????????, ? ??????? ??
<?=
, ????????????? ???????? ?? ????? ???????? ??????? ? ?????????????? ? ?????????????? ????.
PHP ????????? ???, ??????????? ?????? ?????????????, ????? ???
<?php ?>
. ???, ??? ????????? ??? ?????????????, ????????? ??? ?????????. ? ???????? ??? ???????????? ??? ??????? PHP-???? ? HTML-????????, ????????, ???:
<html> <head> <title> ????????? PHP </title> </head> <body> <?php echo '??????, ???!'; ?> </body> </html>
?? ?????? 7.0 ??????????? ????????????? ?????????????
????? ???????????????? ASP
<% %>
?
<script language="php"> </script>
. ?????? ??????????? ??????????? ???????????? ? ???????????????? ????? php
.ini
.
????? ?????????? ?????????? ? ???????
$
, ??? ?????????? ????????? ?? ?????. ????? ?????????? ? ???????? ????????????? ? ???????? ????????. ????? ???????, ??????? ??????? ? ??????? ? ???????? ???????? ?? ?????????????. ?????????? ?????????????? ?
???????
, ??????????? ? ??????? ???????, ?
heredoc
-??????? (???????, ????????? ??? ?????? ????????? <<<). ?????????? ? ???????, ??????????? ? ????????? ??????? ?
nowdoc
?? ??????????????.
?????????? ??????????? ? ???????
????? ? ???????
(
;
), ?? ??????????? ????????? ???????, ????? ?????????? ??????????? if/else ? ??????.
?????????? ? ??????? ????? ?????????? ??? ?? ????????, ??? ? ?? ?????? (???????????? ????
&
).
PHP ???????????? ??? ???? ????????????: ? ????? ?????
??
(????????????
/* */
),
C++
(???????????? ?
//
? ?????? ?? ????? ??????) ?
???????? UNIX
(?
#
?? ????? ??????).
PHP ???????? ?????? ???????????????? ? ???????????? ?????????? , ?? ????????? ???????? ???? ??? ?????????? ??????????, ????? ??? ? ?????? ?????????? ??????????.
? ????????? ????? ?????? ?????????:
? ??????????? ????? ?????????:
???????? ????? ????? (int) ? PHP ??????? ?? ????????? (??? 32-?????? ??????????? ???????? ????? ?? ????????? 32 ????, ?? ????, ?? ?2 147 483 648 ?? 2 147 483 647). ????? ????? ???????? ? ??????????, ???????? , ???????????? ? ????????????????? ???????? ?????????. ???????? ???????????? ????? (float) ????? ??????? ?? ????????? (??? 32-?????? ??????????? ???????? ????????? ??????????? ??????? ?? ±1.7×10 ?308 ?? ±1.7×10 +308 ).
PHP ????????????? ?????????????
?????????? ???
(bool), ????????? ????????? ?????? ??? ????????
true
(«??????») ?
false
(«????»). ??? ?????????????? ? ?????????? ??? ????? 0, ?????? ??????, ???? ? ?????? «0»,
null
? ?????? ?????? ????????? ???????
false
. ??? ????????? ???????? ????????????? ????????????? ?
true
.
??????????? ??? null ???????????? ??? ?????????? ??? ????????????? ????????. ???????????? ????????? ??????? ???? ???????? ???????
null
. ??? null ????????? ???????????????????? ??????????, ?????????? ?????????????????? ??????????
null
, ? ????? ??????????, ????????? ??? ?????? ???????????
unset()
.
?????? ?? ??????? ??????? ????? ??? «??????» (resource). ?????????? ??????? ????, ??? ???????, ???????????? ????? ?????????? , ??????????? ????????? ???????? ?????????, ?????? ??? ?????, ???????????? ???????????, ?????????????? ??????? ???? ?????? ? ?. ?. ?? ???? ???????? ????? ??????????? ?????????? ?????????? ?????????????? ? ??????? ?????????? ?????????. ????? ??????? ??????????? ????????? ?????????? ?? ????? ????.
???????
(array) ???????????? ???????? ? ????????? ????? ? ????????
?????????????
. ??????? ????? ????????? ???????? ????? ?????, ??????? ?????? ???????. ??????? ????????? ? ?? ?????? ???????????. ?? ?????? ????????? ???????? php-??????? ?????????, ?? ????? ???? ???, ?????? ?????, ?????????????
???
. ???????? ??????????? ????????? ??? ????????????? ?????
for
?? ????????? ??????
foreach
. ???, ????????, ??? ?????????? ??????? ? ?????????? ????????? ????????? ?? ??????????? ??????????, ??????????? ? ????? ????.
???? ????????? ????????? ??????????, ???????????? ???????? ??????? ? ??????? ??????? , ? ?????, ??????? ? ?????? 7.4 ????????? ????? ??????? . ????????? ????????? ??????? ?????????????? ????? ? ?????? ???????? ????, ??? ?????????? ????????? ????? ? ?????? ?? ??????? ?????????? .
????
int
,
string
,
float
,
bool
,
array
,
object
? ????????? ?????? ???????? ??????????? ????????????? ???? ?????????, ???? ?????? ??? ????????????? ????????. ????? ??????????? ???????????? ????? ???????, ???? ??????????? ??? ??????????? ?????????? ??????????. ?????????????
resource
??? ??????????? ???? ?? ???????????.
??????????? PHP ????????? ??????? ????????? ?????????????? ????? ?????? ? ????????? ???????????? ??? ?????????? , ??? ? ?????????? ??? ??????????? ????. ???? ?? ????????? ???????????? ?????????? ????? , ?????? ????????????? ????????? ?????????? ??????????, ??????? ? ?????? PHP ????????? «????????????». ???????? ?????? ? ????? ??????????? ? ?????? ??????????? ????, ??????? ?? ???????? ???????????????, ?????????? ? ????????, ? ?????????? ???? ??? ?????????? ???????? ???? ? Zend VM (?????? ??????????? ??????????? ????????? «????-????»).
// ??? ??????? ????????? «?????????» mixed function example(): mixed { return 42; } $result = example(); var_dump($result); // int(42) // ?????? ??????????? ??? ? ?????????? $result — ??? int
? «???????????» ?????????:
?????? ???????? ?? ???????????? ????? ?????????? «??????????» ????? ????????????? ?????????????? ?????? ????????. ????????,
callable
?????? ??????????????? (?????? ??):
PHP ???????????? ??? ?????????? ??????????? ???????, ??? ? ????????? ??????? ??????? ?????? , ????????:
// ?????????? ??????????? ??????? function get_hello_world(): string { return 'Hello World!'; } // ?????????? ????????? ??????? $getHelloWorld = function(): string { return 'Hello World!'; }; // ???????? ????????? $getHelloWorld = fn(): string => 'Hello World!';
????? ???????? ????????, ??? ? ?????? ????????? ??????? ???????? ??????? ?? ?????? ? ?????????? ????????, ?? ? ? ??????? ??????? ?????????? ???????? ?????????. ????? «????????» ????? ?????? ????????
??????????
, ? ?? ?? ????? ??????? ?????? ??? ?????????? ????????? ??????? ?????? ???????? ?????????? ?????? ?????????
use
?? ???????? ????????? ??? ?? ???????:
$variable = 'Hello World!'; // ????????????? ????????? use function() use ($variable): string { return $variable; }; // ?????????????? ???????, ????????? ???????? ????????? fn(): string => $variable;
????????? ? ?????????? ?????????????? ? ??????? ???????
$
, ?? ??????? ??????? ??? ??????????. ?????? ??????????? ????? ???? ????????? ????? ??? ???????? ???????????? ?????????? ? ???????.
????????:
$a = 'I am a'; // ?????? ???????? ? ?????????? $a echo $a; // ????? ?????????? $? $b = 'a'; echo $$b; // ????? ?????????? $? (?????????????? $ ????? ?????????? $b) echo ${'a'}; // ????? ?????????? $a function_name(); // ????? ??????? function_name $c = 'function_name'; $c(); //????? ??????? function_name $d = 'ClassName'; $obj = new ClassName(); // ???????? ??????? ?????? ClassName $obj = new $d(); // ???????? ??????? ?????? ClassName $obj->b; // ????????? ? ???????? b ??????? $obj->c(); // ????? ?????? c() ??????? $obj->$b; // ????????? ? ???????? "a" ???????, ??? ??? $b = 'a' $obj->$c(); // ????? ?????? function_name() ???????, ??? ??? $c = 'function_name'
? PHP
echo
?
print
???? ? ???????? ?????? ?? ???????, ?????? ?????? ???????? ??????????
, ? ?????? ?????????? (?? ????
print
?????????? ????????, ? ??????? ??
echo
). ??? ?? ????????????? ????? ???????? ??????.
$array = [1, 2, 3]; array_walk($array, fn (int $value) => print $value); // ??????????: 123 array_walk($array, fn (int $value) => echo $value); // ??????: Syntax error, unexpected token "echo" // ??? ??? ???? ???????? ????????? ??????? ????????? ?????? ?????????.
???????????????? ????????? (
????.
Superglobal arrays) ? PHP ?????????? ???????????????? ???????, ??????? ?????????? ??????? ????????? ??? ????????????? ?????????
global
. ??????? ????? ???? ???????? ???????? ??????? ?????? ??????? ???????????? (?????????
GET
-???????, ???? ???? ??? ??????? ???????
POST
,
????
? ?. ?.).
??? ??????????????? ???????, ?????
$GLOBALS
?
$_REQUEST
, ????? ?????????? ??????? ? ???????? ???????, ??????? ???????? ?????? ?? ?????? 5.3. ? (??????? ? 5.4.0 ???? ???????). ????? ???????, ?????????
$_GET['year']
?
$HTTP_GET_VARS['year']
????????? (?? ??????????? ??????? ?????????: ??????? ? «????????» ??????? ?? ???????? ????????????????).
$GLOBALS
$_SERVER
(?????? ??? ??????????? —
$HTTP_SERVER_VARS
)
$_ENV
(???.
$HTTP_ENV_VARS
)
$_GET
(???.
$HTTP_GET_VARS
)
?
».
$_POST
(???.
$HTTP_POST_VARS
)
name
???????? (??????, ?????, ???????????, ?????? ? ?. ?.) HTML-?????.
$_FILES
(???.
$HTTP_POST_FILES
)
['name']
— ???????? ??? ????? ?? ?????????? ????????????.
['type']
— ????????? ??????? ????????????
MIME
-??? ?????. PHP ?? ????????? ???, ? ??????? ??? ??????? ????????, ??? ????????? ??? ????????????? ????????????????.
['size']
— ?????? ????? ? ??????.
['tmp_name']
— ?????? ???? ? ????? ?? ????????? ?????. ???? ?????????? ??????????? ?????? ????????
move_uploaded_file
. ??????????? ????? ?? ????????? ????? PHP ??????? ??????????????.
['error']
— ??? ??????. ???? ???? ?????? ??????????, ?? ???? ??????? ????? ????? 0 (
UPLOAD_ERR_OK
).
$_COOKIE
(???.
$HTTP_COOKIE_VARS
)
$_REQUEST
$_GET
,
$_POST
,
$_COOKIE
. ? ?????? PHP 4.1 ????????
$_FILES
.
$_SESSION
(???.
$HTTP_SESSION_VARS
)
???????? ?????
class
???? ??????????????? ??? ? ??????? ?????? ?????. ? ????????? ?????? ????? ???????? ????????? ?????? ? ??????? ?? ?? ??????. ?????? ???????? ??? ?????????????? ???? ????????, ??? ????????, ??? ????? (?????????? ? ??????) ???? ???????. ? ???? ?? ???????? ???????? ???? ??????? ????????? ? ???????? ????????.
??????? ? ????? ?????? PHP ???????? ?????? ?????????? ??? . ?????? ? ???????? ???? ?????????????? ? ?????? ????? ??? ???????? ?????????? ??????.
?????
? PHP ??????????? ? ??????? ????????? ?????
class
. ?????? ? ???????? ?????? ????? ???? ?????????????? (
public
, ?? ?????????), ??????????? (
protected
) ? ???????? (
private
). PHP ???????????? ??? ??? ???????? ????????? ??? —
????????????
,
??????????? ????????
?
????????????
(???????????? ????? ??????????? ? ??????? ????????? ?????
extends
????? ????? ??????). ??????????????
??????????
(???????? ? ???????????? ? ???????
implements
). ??????????? ??????????
?????????
,
??????????? ???????
? ???????.
????????????? ????????????
??????? ?? ??????????????, ?????? ????? ????? ????????????? ????????? ???????????. ??? ????????? ? ??????? ????????????? ?????? ???????????? ???????? ?????
parent
.
??????? ? ?????? 5.4.0 ????????????? ???????????? ????? ???? ??????????? ? ??????? ????????? ???????????? ( ????. trait). ??????????? ?????? ?? ??????? ( ????. mixins), ?? ??????????? ???? ??? ??? ??? ?????? ???????? ??????? ?????????. ????????? ????????????? ???? ????????? ? ????????????? ???? ??????????? ? ?????????? ???????. ??????????? ???????????? ? ????? ?????? ????????? ????????????. ???????? ???????????? ????? ???????? ?????????? ?????????? ????. ??? ??????? ????????? ??? ??????????? ????? «?????????????» ? ??? ??????????? ??? ??????.
?????? ? PHP ????? ??? «??????????» ??????? (
????.
magic methods), ???????????? ? ???? ???????? ????????????? —
???????????
(
__construct()
, ? ??????? ?? 5.0 ????????????? ?????? ?????, ??????????? ? ???????) ?
??????????
(
__destruct()
), ? ????? ?????? ?????? (
__get()
) ? ?????? (
__set()
), ??????????? (
__sleep()
) ? ????????????? (
__wakeup()
), ???????????? (
__clone()
) ? ??. ??? ?????? ???????? ?????????? ?????? ????????????: ????????????? ??, ????? ???????? ????????????? ????????? ????????? ???????.
??? ???????-????? ??????????? ???????????? ? ?????? ??? ??? ???????? ????????.
?????????? ?????? ????????? ? ??????? ????????? ?????
new
, ????????? ?
?????
? ??????? ??????? ???????????? ? ?????????????? ?????????
->
. ??? ??????? ? ?????? ?????? ?? ??? ??????? ???????????? ??????????
$this
.
class C1 extends C2 implements I1, I2 { private int $a; protected int $b; public function __construct(int $a, int $b) { parent::__construct($a, $b); $this->a = $a; $this->b = $b; } public function plus(): int { return $this->a + $this->b; } /* ............... */ } $d = new C1(1, 2); echo $d->plus(); // 3
??????? ? ????? ?????? PHP ??????? ?????????? ?? ?????????:
class A { public string $color = 'red'; } $a = new A(); echo $a->color; // red $b = $a; $b->color = 'blue'; echo $a->color; // blue
?????? ????? ????? ????????? ??????????, ??? ??????? ?????????? ?? ??????, ?????? ??? ?? ???. ??? ??? ? PHP ??????????? ??????? «?????????», ?? ????? ??????????? ???????????? «???????? ?? ??????» ? ????????? ???????? ???????? ? ???????? ?????????? ??????? ??? ??????? ??-?? ???????? ?????????. ??????? ????? ????????? ???????? ?? ?????? ? ?? ????????? ???????? ????????? ???????:
class A {} function by_pointer(A $object): void { $object = 42; } function by_reference(A &$object): void { $object = 42; } $object = new A(); // ???????? ?? ????????? by_pointer($object); var_dump($object); // object(A) {} // ???????? ?? ?????? by_reference($object); var_dump($object); // int(42)
«Paamayim Nekudotayim» ( ????? : ?????? ????????) ??? ?????? «??????? ?????????». ????????? ??? ??????? , ??????????? ????? ?????????? ? ??????????, ??????????? ??? ????????????? ????????? ??? ??????? ??????. ??? ????????? ? ???? ????????? ????? ?????? ??????????? ?????? ???????????? ??? ????? ??????. «Paamayim Nekudotayim» ?? ?????? ?????? ????? ?????????? ???????? ??????????????? ??? ??????????? ???????? ?????????. ?????? ?? ????? ???????? Zend Engine ?????? 0.5 (??????? ?????? ? PHP3), Andi ? Zeev ??????? ?????? ??? ???????????. «Paamayim Nekudotayim» ????????????? ?????? «??????? ?????????» (????????: «??? ???? ?????????») ?? ??????. ??? ??????????? ?? ???????? ?? ???? ? ??????? ????? ??????? ?????????? PHP .
class MyClass { public const CONST_VALUE = '???????? ?????????'; } // ????????????? :: ??? ?????????? ?????? echo MyClass::CONST_VALUE;
PHP-??????? ?????? ?????????????? ??????????????? ? ???????, ?????????????? ???????????????????? ?????????????? ??????????:
??????, ??? ?????????? ?????????????? ?????????? ???? ???????? ????????????? ???????????? ???????????? ??????????? , ??? ?????????? ????????????? . ??????? ?? ?????? ??????????? ? ??????????? ??????? ???????????????? ????-???? ? ?????? ?/??? ?? ????? , ????? ???????, ?? ???????? ?????? ?????????? ??????????? ????? 1—3, ??? ? ????? ?????? ????? ? ????????????? ????????? ??????. ??????? ? ?????? 5.5 ???? ?? ?????????????? ?????????????, opcache , ???? ???????? ? ????, ??????? ????????? ??????? ?????? ?? ?????????? ?????????????.
?????? ???????????? ???????? ??, ??? ???????????? ??? ????????????? ?????????? ? ????????????? ? ???????????? ??????. ???? PHP ????????? ???????? ??? ??????????????? ?????????? ???????; ??? ?????????? ?????? ???????????? ??????? ????? ?????????? ?????? ??????? .
????????????? ??????? ?? ???? ? ???????????? ??????? , «??????????» , ?????????????? ????? ???????????? ?????????? . ?????????? ????????? ????????? ??????? ??????????? ?????, ???????????? ??????????? ??? ?????? ? ?????? ?????? , ???????? , ???????????? ???????? , ?????????????????? ????????????, ??????????? ??????? PDF ? ???? ????????. ????? ???????? ????? ??????????? ???? ??????????? ?????????? ? ?????????? ???. ?????????? ???????? ?????????? ??????????, ??? ???????????, ??? ? ????????? ?????????? ?????????? ? ????????????, ?????? ? ??????????? ???????? ?????? ???? ????????? ???????? ?????? ????????????????? ????. ????????? ?????????? ???????? ? ??????????? PECL .
??????? ? ?????? 7.4.0 ? PHP ???? ????????? ?????????
?????????? ??????? ???????
(FFI), ??? ? ???????????? ??????? ????????? ?????????????? ? ????????????, ??????????? ?? ????? ?????? ????? (??????? API, ??????????????? ???????????? ????????). ???? ????? ??????????, ? ???? ???????, ??????????? ???????????? ????????? ??????????. ????? ???????, ????????? FFI ????? ?????? ??? ?? ????? PHP ? ????????????????? ? ?????? ???????????? ? ???????, ??????? ?????????????
cdecl
,
fastcall
???
stdcall
ABI
.
????????????? PHP ????? ??????????? —
php.ini
, ?????????? ????????? ????????, ????????? ??????? ?????? ?? ????????? ??????????????
. ??????? ??????????? ????????? ????????????? ???? ???????, ???????? ??????????? ?? ???????????? ???????? ??????????? ??????, ????? ??????????, ????? ??????????? ??????, ????????? ?????????????? ??????, ?????? ? ???????? ? ????????? ?????????, ?????????? ?????????????? ??????????, ? ????? ?????? ??????. ???????? ????????? ???????? ????????????????? ????? ?? ?????. ????????, ?????? ?????????????? ???????? ????????? ???????? ?????????? ? ????????? ?????. ????????? ?????????????? ????? ???? ?????????????? ? ?????? ????????????
HTTP-???????
(????????,
.htaccess
?
Apache
) ??? ? ????? ??????? ?? ????? ?????????? ??? ?????? ???????
ini_set
.
SAPI — ??? ??????? ??????? ?????????? , ??????????????? ??? ??????????? ?????????????? ? ?????? ?????????? ? ???????? ?? ??? ?????? (??????, ?????????, ???????? ???????? ?? ??????????, ?????? ? ??????? ??????). ?????????? ????????? ???????? SAPI, ???????????? ??????? ??????? ? ????????????? PHP:
mod_php
). ? ???? ?????? ????????????? PHP ??????????? ?
????????
???-???????. ???-?????? ????????? ??????????? ?????????? ????????? PHP ? ???????? ??, ????? ??????? ????????? ?????????.
./php-cgi /path/to/script.php
. ??? ??????? ?????? ????????????? ?????????????, ??? ????????????? PHP ????????? ?????? ???? ??????, ????? ???? ??????????? ???? ??????. ??????? ?? ?????? ???????? ?????????????? ? ??? ????????????? ????? ????? ??????????? ??? ???? ????????? ??????? ?? ?????????? PHP-???????. ??? ??????? ???? ???????? ? CGI SAPI ??? ?????? ????? FastCGI. ? ???? ?????? PHP-????????????? ??????????? ??? ??????????? ??????, ?????????????? ???????? ??????? ?? ?????????? PHP-???????? ?? ????????? FastCGI, ??? ????????? ??? ???????? ? ????? ???-????????, ?????????????? ???? ????????.
??????? ? ?????? PHP 5.4.0 ? CLI SAPI ????????? ??????????? ??????? PHP ??? ?????????? HTTP-???????. ?????? ???? ????? ???????????? ????????????? ??? ??????????, ??? ??? ????????? ?????? ???? ??????? ?????????????? ? ????????? ??? ??????? ????????????? ???????????????.
PHP ????? ????????? ?????????? ??? (?????). ???????? ??????????? GET-?????????? ?????? php-??????? ???????? ? ?????? ????????? ???????????.
????????:
?????_????????.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
??? ????? ????? ???????? ? ???????? ?????? ???????? ????? ??????? ????????? ???????????, ? ??????????? ?? ?????? ??????????????:
????????? ??? ???????? ???????? ??????? ??????????? ??????? PHP ? ZEND, ?????????????? :
?????_????????.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
?????_????????.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
??? ???????? ????? ???????? ? ??????????????? ? PHP-??????? ? ??????? ???????
php_logo_guid
?
zend_logo_guid
??? ???????? Zend.
????? ??????? ??????????? ???????? ??? ??????????? ?????? ???? ??????? PHP (4,5) :
?????_????????.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
? ???? ???????????? ????? PHP ? ??????? ????????? ?????????????? ?????????? ?? ??? ???-?????????? ??????? ????????? ?????????????? ???????????? , ??????? ? PHP-?????. ??? ? ??????? 2010 ???? ???????? Facebook ??????? ???? ?????????? PHP — HipHop (HPHP, Hyper-PHP) ???????????? ??? ?? C++ , ? ??????????? ??????????? ? ???????? ??? ? ??????? gcc . ? ???? 2013 ???? ?????????? ???????? ????????? ???????????? ??????? ??????? — KPHP .
? ??????? ??????????? ?????? ???????????? ?? ??????????? ?????? ?????????????? ??????????.
???????? | ?????? PHP (????????) | ???????? | ????????? ?????????? |
---|---|---|---|
KPHP | 7.4 | GPL | C++ , ???????? ??? |
HipHop | 5.4 | PHP License | C++ , ???????? ??? |
Roadsend PHP | 5.3 | GPL / LGPL | C , ???????? ??? |
Phalanger | 5.5 | Ms SS-PL ( Shared source ) | Microsoft IL |
Quercus (? ??????? ???-??????? Resin ) | 5.2 | GPL ??? ???????????? | JVM |
PHC | 5.2 | BSDL | C , ???????? ??? |
Pipp | 5.3 | ? GNU GPL | Parrot |
JPHP | 7.1 (???????? 7.2, 7.3 ? 7.4) | Apache 2.0 | JVM |
PHPPHP | 5.4 | MIT | PHP |
PH7 | 5.5 | ???? (Symisc Public License) | C , ???????? ??? |
HippyVM | 5.6 | MIT | RPython/PyPy |
?? ????? phpclasses.org ???????? ????????????? ?????? ????????? ???????????? .
???? PHP ???????? ????? ?????????? ?????? ??? ?????????? ?????? ?????????? ?????????? (Content management system, CMS).
???????? | ???????? |
---|---|
Codelobster | Freeware |
Komodo | ( MPL / LGPL / GPL ) |
PhpStorm | Proprietary software |
PHP Development Tools | Eclipse Public License |
Zend Studio | Shareware |
Aptana Studio | GNU GPL |
Shareware | |
PHP Expert Editor | Shareware |
NetBeans IDE | CDDL |
RadPHP XE | Trial |
NuSphere | Trial |
KDevelop | GNU GPL |
Freeware | |
Notepad++ | GNU GPL |
Sublime Text | Proprietary software |
VS.Php for Visual Studio | Proprietary software |
PHP Tools for Visual Studio | Trial |
jEdit | GNU GPL -2.0 |
??????????? ???????????? PHP ( ????. PHP Standard Recommendation , ????. ) — ??? ???????????? PHP, ??????? ???????????????, ??????????? ? ??????????? ??????? ???????????? PHP ???????? ? ??? ????? CakePHP, Composer , Joomla, PEAR , Phalcon, phpDocumentor , TYPO3, Yii framework . ???????????? ?????? ??????????????? ????????? ???????????????? ?? ????? PHP ? ???????? ?? ???????? ?????, ? ????? ?? ????????????? ? ????????????? . ???? ???????????? ??????? ? ???, ????? ?????????? ????????????? ??????????? ???-?????????? ????????????? ??????? ??????????????.
?????????? ????? PHP ? ???????? ???????? ??? ??????????? ???????? ??????? ??????????????????, ???????????????? PHP-????????????? ?? ????? ????? ? ???????? ????????. ? ???????????? ????? ????????? ? ??? ?????????? ??????? ????????.
?????????
????? ? ?????????????? ???????????
(?????? ???
UTF-8
) ??????????? ????? ????????? ??????????
mbstring
?
iconv
, ?? ?????? ???? ????????? ???????????, ?????? ? ?????? PHP 4.2.0 ???? ??????????? ?????????????? ??????????? ??????? ?????? ?? ????????, ???????? ?? ?? ??????? ?? mbstring. ????????? ????????????? ????????? ?? ???? ????????? ???????? ????? ???????? ? ?????? 5.4.0 (???? 2012 ????).
? ????? ?? ????????????? ??????????? ???????? ????????????? ?????????? ? ??????????? ????????? ??????????????????? ??????? ? ????????, ?????? ?????????? ??? ?????? ?????????? PCNTL (?? ????. process control), ?? ??? ?? ???????? ??? ??????? ????????????? ?????.
???? ???? ??????????? ?????????? ?????????? pthreads ??? «???????» ???????, ?? ??? ????? ????????????? ?????? ???? ????????????? ? ?????? thread safety, ? ???? ?????????? ???????? ?????????? ? ?????? parallel (?? ???? ?? ??????).
? ???????? ????? ??????????? ???????????? ???????? ????????????? ?????????? Swoole.