PHP เดญเดพเดทเดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด…เดจเดฒเตˆเดธเดฑเดพเดฏ เดธเด™เตเด•เต€เตผเดคเตเดคเดจเด‚ 3.12-เดจเตเดฑเต† เดชเตเดฐเด•เดพเดถเดจเด‚. PHP 8.0-เดจเตเดฑเต† เด†เตฝเดซ เดฑเดฟเดฒเต€เดธเต

เดตเดฟเดฎเดฟเดฏเต‹ เด•เดฎเตเดชเดจเดฟ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด…เดจเดฒเตˆเดธเดฑเดฟเดจเตเดฑเต† เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดธเด™เตเด•เต€เตผเดคเตเดคเดจเด‚ 3.12, เด‡เดคเต PHP เด•เต‹เดกเดฟเดฒเต† เดตเตเดฏเด•เตเดคเดตเตเด‚ เดธเต‚เด•เตเดทเตเดฎเดตเตเดฎเดพเดฏ เดชเดฟเดถเด•เตเด•เตพ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเดจเตเด‚ เดšเดฟเดฒ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเดฟเดถเด•เตเด•เตพ เดธเตเดตเดฏเดฎเต‡เดต เดถเดฐเดฟเดฏเดพเด•เตเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. PHP-เดฏเตเดŸเต† เดชเตเดคเดฟเดฏ เดถเดพเด–เด•เดณเดฟเตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด†เดงเตเดจเดฟเด• เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฒเต†เด—เดธเดฟ เด•เต‹เดกเดฟเดฒเตเด‚ เด•เต‹เดกเดฟเดฒเตเดฎเตเดณเตเดณ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป เดˆ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เต‹เดกเต PHP-เตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดคเดคเต MIT เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเตฝ.

เดคเต†เดฑเตเดฑเดพเดฏ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด‰เดชเดฏเต‹เด—เดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดฎเดฟเด•เตเด• เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚ เด…เดคเตเดชเต‹เดฒเต† เดคเดจเตเดจเต† เดตเดฟเดตเดฟเดง เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚ เดธเด™เตเด•เต€เตผเดคเตเดคเดจเด‚ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเดจเตเดจเต เดธเดพเดงเดพเดฐเดฃ เดคเต†เดฑเตเดฑเตเด•เตพ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเดฟเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดคเดฐเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดฎเดฟเด•เตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเต† เด‡เดคเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต, เดคเต†เดฑเตเดฑเดพเดฏ เดฒเต‹เดœเดฟเด•เตเด•เตฝ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ (โ€œif ($a && $a) {}โ€, โ€œif ($a && !$a) {}โ€, โ€œ เดŽเด™เตเด•เดฟเตฝ ($a) {} elseif ($a) {}"), เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เดณเตเดŸเต† เด…เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดธเดฎเดพเดฐเด‚เดญเด‚. เด…เดจเดฒเตˆเดธเตผ เดฎเตพเดŸเตเดŸเดฟ-เดคเตเดฐเต†เดกเต เดฎเต‹เดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด•เดดเดฟเดžเตเดž เดธเตเด•เดพเตป เดฎเตเดคเตฝ เดฎเดพเดฑเดฟเดฏ เดซเดฏเดฒเตเด•เตพ เดฎเดพเดคเตเดฐเด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด‡เตปเด•เตเดฐเดฟเดฎเต†เดจเตเดฑเตฝ เดธเตเด•เดพเดจเตเด•เตพ เดจเดŸเดคเตเดคเดพเตป เดธเดพเดงเดฟเด•เตเด•เตเด‚.

เด•เต‚เดŸเดพเดคเต†, เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดธเตเดฐเด•เตเดทเดฟเดค เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดŸเต‚เดณเตเด•เตพ เดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เตพ เดกเต‹เด•เตเดฌเตเดฒเต‹เด•เตเด•เต (โ€œ/** @var เดŸเตˆเดชเตเดชเต */โ€) เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดคเดฐเด™เตเด™เตพ, เดฑเดฟเดŸเตเดŸเต‡เตบ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ, เดซเด‚เด—เตโ€Œเดทเตป เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ, เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเตฝเด•เดพเตป. เดคเดฐเด‚ เด‰เดชเดฏเต‹เด— เดชเดพเดฑเตเดฑเต‡เดฃเตเด•เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด‰เดฑเดชเตเดชเต เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

/** @var เดธเตเดŸเตเดฐเดฟเด‚เด—เต|เด…เดธเดพเดงเตเดตเดพเดฏ */
$a = foo();

/** @var เดธเตเดŸเตเดฐเดฟเด‚เด—เต $a */
echo strpos($a, 'เดนเดฒเต‹');

/** @psalm-assert-if-true B $a */
เดซเด‚เด—เตโ€Œเดทเตป isValidB(A $a) : bool {
B && $a->isValid();
}

เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเต เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดชเตเดฒเด—เดฟเดจเตเดจเตเด•เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดธเดพเตพเดŸเตเดŸเตผ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต เดชเตŠเดคเตเดตเดพเดฏ เด•เต‹เดกเต เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเด•, เดคเดฐเด‚ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเด•, เด•เตเดฒเดพเดธเตเด•เตพ เด’เดฐเต เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•, เด•เตเดฒเดพเดธเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเดณเตเดณ เดฐเต€เดคเดฟเด•เตพ เดฎเดพเดฑเตเดฑเตเด•, เด•เตเดฒเดพเดธเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดฐเต€เดคเดฟเด•เดณเตเดŸเต†เดฏเตเด‚ เดชเต‡เดฐเตเดฎเดพเดฑเตเดฑเตฝ เดŽเดจเตเดจเดฟเดต เดชเต‹เดฒเตเดณเตเดณ เด•เตƒเดคเตเดฐเดฟเดฎเด™เตเด™เตพ เดจเดŸเดคเตเดคเตเด•.

เดธเด™เตเด•เต€เตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดคเดฟเดฏ เดฒเด•เตเด•เดคเตเดคเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ "--taint-analysis" เด“เดชเตเดทเตป เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดšเตเดš เด‡เตปเดชเตเดŸเตเดŸเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, $_GET['name']) เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฌเดจเตเดงเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, echo " $เดชเต‡เดฐเต "), เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดซเด‚เด—เตโ€Œเดทเตป เด•เต‹เดณเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดถเตƒเด‚เด–เดฒเด•เดณเดฟเดฒเต‚เดŸเต† เด‰เตพเดชเตเดชเต†เดŸเต†. $_GET, $_POST, $_COOKIE เดŽเดจเตเดจเต€ เด…เดจเตเดฌเดจเตเดง เดถเตเดฐเต‡เดฃเดฟเด•เดณเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เด…เดชเด•เดŸเดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด‡เดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเต เดฆเตƒเดขเดจเดฟเดถเตเดšเดฏเด‚ เดธเตเดตเดจเตเดคเด‚ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ. เดŽเดธเตเด•เต‡เดชเตเดชเต เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเดฟเตฝ HTML เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ, HTTP เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ SQL เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต.

เดŽเด•เตเด•เต‹, เดŽเด•เตโ€Œเดธเดฟเด•เต, เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ, เดนเต†เดกเตผ เดคเตเดŸเด™เตเด™เดฟเดฏ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดฐเด•เตเดทเดชเตเดชเต†เดŸเต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดค เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดŸเต†เด•เตเดธเตเดฑเตเดฑเต, SQL เด‰เดณเตเดณ เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด•เตพ, HTML, เดทเต†เตฝ เด•เต‹เดกเต, เดชเตเดฐเดพเดฎเดพเดฃเต€เด•เดฐเดฃ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดณเตเดณ เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด•เตพ เดŽเดจเตเดจเดฟเดต เดชเต‹เดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดคเดฐเด™เตเด™เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดจเตเดจเต. เด•เตเดฐเต‹เดธเต-เดธเตˆเดฑเตเดฑเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เดฟเดฒเต‡เด•เตเด•เต‹ (XSS) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ SQL เดธเดฌเตเดธเตเดฑเตเดฑเดฟเดฑเตเดฑเตเดฏเต‚เดทเดจเดฟเดฒเต‡เด•เตเด•เต‹ เดจเดฏเดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เดกเดฟเดฒเต† เด•เต‡เดŸเตเดชเดพเดŸเตเด•เตพ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฎเต‹เดกเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เด•เต‚เดŸเดพเดคเต†, เด‡เดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด• เดชเตเดคเดฟเดฏ PHP 8.0 เดถเดพเด–เดฏเตเดŸเต† เด†เตฝเดซ เดชเดฐเดฟเดถเต‹เดงเดจ. เดจเดตเด‚เดฌเตผ 26เดจเดพเดฃเต เดฑเดฟเดฒเต€เดธเต เดจเดฟเดถเตเดšเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดชเตเดคเดฟเดฏ เดถเดพเด–เดฏเดฟเตฝ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต: เดชเตเดคเตเดฎเด•เตพ, เดชเต‹เดฒเต†:

  • เดชเตเดฐเดพเดชเตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต JIT เด•เดฎเตเดชเตˆเดฒเตผ, เด‡เดตเดฏเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เด‰เดคเตเดชเดพเดฆเดจเด•เตเดทเดฎเดค เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚.
  • เดชเดฟเดจเตเดคเตเดฃ เดฏเต‚เดฃเดฟเดฏเตป เดคเดฐเด™เตเด™เตพ, เดฐเดฃเตเดŸเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เดคเดฐเด™เตเด™เดณเตเดŸเต† เดถเต‡เด–เดฐเด™เตเด™เดณเต† เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "เดชเดฌเตเดฒเดฟเด•เต เดซเด‚เด—เตโ€Œเดทเตป foo(Foo|Bar $input): int|float;").
  • เดชเดฟเดจเตเดคเตเดฃ เด—เตเดฃเดตเดฟเดถเต‡เดทเด™เตเด™เตพ เดกเต‹เด•เตเดฌเตเดฒเต‹เด•เตเด•เต เดตเดพเด•เตเดฏเด˜เดŸเดจ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเต† เด•เตเดฒเดพเดธเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ (เดคเดฐเด‚ เดตเดฟเดตเดฐเด™เตเด™เตพ เดชเต‹เดฒเตเดณเตเดณเดต) เดฌเตˆเตปเดกเต เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ (เดตเดฟเดถเด•เดฒเดจเด™เตเด™เตพ).
  • เดšเตเดฐเตเด•เตเด•เดฟเดฏ เดตเดพเด•เตเดฏเด˜เดŸเดจ เด•เตเดฒเดพเดธเต เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพ, เด’เดฐเต เด•เตบเดธเตเดŸเตเดฐเด•เตเดฑเตเดฑเตผ, เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดจเดฟเตผเดตเดšเดจเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.
  • เดชเตเดคเดฟเดฏ เดฑเดฟเดŸเตเดŸเต‡เตบ เดคเดฐเด‚ - เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เตเด•เต.
  • เดชเตเดคเดฟเดฏ เดคเดฐเด‚ - เดฎเดฟเด•เตเดธเดกเต, เด’เดฐเต เดซเด‚เด—เตโ€Œเดทเตป เดตเตเดฏเดคเตเดฏเดธเตโ€Œเดค เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.
  • เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดŽเดฑเดฟเดฏเตเด• เด’เดดเดฟเดตเดพเด•เตเด•เดฒเตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป.
  • เดฆเตเตผเดฌเดฒเดฎเดพเดฏ เดฎเดพเดชเตเดชเต เดฎเดพเดฒเดฟเดจเตเดฏ เดถเต‡เด–เดฐเดฃ เดธเดฎเดฏเดคเตเดคเต เดฌเดฒเดฟเดฏเตผเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดตเดธเตเดคเตเด•เตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด…เดจเดพเดตเดถเตเดฏ เด•เดพเดทเต†เด•เตพ เดธเต‚เด•เตเดทเดฟเด•เตเด•เดพเตป).
  • เด…เดตเดธเดฐเด‚ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ "::class" เดŽเดจเตเดจ เดชเดฆเดชเตเดฐเดฏเต‹เด—เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต (get_class() เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต).
  • เด…เดตเดธเดฐเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดดเดฟเดตเดพเด•เตเด•เดฒเตเด•เดณเตเดŸเต† เด•เตเดฏเดพเดšเตเดšเต เดฌเตเดฒเต‹เด•เตเด•เดฟเดฒเต† เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพ.
  • เด…เดตเดธเดฐเด‚ เดซเด‚เด—เตเดทเตป เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต† เด…เดตเดธเดพเดจ เด˜เดŸเด•เดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เด•เต‹เดฎ เดตเดฟเดŸเตเดจเตเดจเต.
  • เดชเตเดคเดฟเดฏ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดธเตเดŸเตเดฐเดฟเด‚เด—เดฌเดฟเตพ เด’เดฐเต เดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เดฟเดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เต เดคเดฐเด™เตเด™เดณเต‹ เดกเดพเดฑเตเดฑเดฏเต‹ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเดจเตเดจเดคเดฟเดจเต (เด‡เดคเดฟเดจเต __toString() เดฐเต€เดคเดฟ เดฒเดญเตเดฏเดฎเดพเดฃเต).
  • เดชเตเดคเดฟเดฏ เดธเดตเดฟเดถเต‡เดทเดค str_contains(), เด’เดฐเต เดธเดฌเตโ€Œเดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เดฟเดจเตเดฑเต† เด†เดตเดฟเตผเดญเดพเดตเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ strpos-เดจเตเดฑเต† เดฒเดณเดฟเดคเดฎเดพเดฏ เด…เดจเดฒเต‹เด—เต, เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เดธเตเดŸเตเดฐเดฟเด‚เด—เดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเดฒเตเด‚ เด…เดตเดธเดพเดจเดคเตเดคเดฟเดฒเตเด‚ เดชเตŠเดฐเตเดคเตเดคเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ str_starts_with(), str_ends_with() เดŽเดจเตเดจเต€ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเตเด‚.
  • เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดšเต‡เตผเดคเตเดคเต fdiv(), เดชเต‚เดœเตเดฏเด‚ เด•เตŠเดฃเตเดŸเต เดนเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเต เดชเดฟเดถเด•เต เดŽเดฑเดฟเดฏเดพเดคเต† เด’เดฐเต เดกเดฟเดตเดฟเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจเต.
  • เดฎเดพเดฑเดฟ เดšเดฐเดŸเต เดšเต‡เดฐเตเดจเตเดจ เดฏเตเด•เตเดคเดฟ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 'เดŽเด•เตเด•เต‹ "เดธเด‚:" เดŽเดจเตเดจ เดชเตเดฐเดฏเต‹เด—เด‚. $a + $b' เดŽเดจเตเดจเดคเต เดฎเตเดฎเตเดชเต 'เดŽเด•เตเด•เต‹ ("เดธเด‚: ". $a) + $b' เด†เดฏเดฟ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดฐเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† PHP 8-เตฝ 'เดŽเด•เตเด•เต‹ "เดธเด‚:" เด†เดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด‚. ($a + $b)'.
  • เดฎเตเดฑเตเด•เดฟ เด—เดฃเดฟเดคเดตเตเด‚ เดฌเดฟเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "[] % [42]", "$object + 4" เดŽเดจเตเดจเต€ เดชเดฆเดชเตเดฐเดฏเต‹เด—เด™เตเด™เตพ เด’เดฐเต เดชเดฟเดถเด•เดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚.
  • เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฑเดฃเตเดฃเตเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เด’เดฐเต‡ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เด•เตเดฐเดฎเด‚ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เดธเต‹เตผเดŸเตเดŸเดฟเด‚เด—เต เด…เตฝเด—เต‹เดฐเดฟเดคเด‚.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•