рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╛ рдЪрдпрдиред рд░рд┐рд▓реАрдЬ рдореЗрдВ: PHP рдХреЗ рдЗрдВрдЯрд░реНрди рд╕реЗ 4 рддрд╛рдЬрд╝рд╛ RFC рдФрд░ PHP 8 рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдкреВрд▓ рдЕрдиреБрд░реЛрдз, рдЙрдкрдпреЛрдЧреА рдЯреВрд▓, рдкреЙрдбрдХрд╛рд╕реНрдЯ, рд╕реНрдЯреНрд░реАрдо рдФрд░ рдмрд╣реБрдд рдХреБрдЫредрдЕрдЪреНрдЫрд╛ рдкрдврд╝ рд▓реЛ!
static
class Test { public function doWhatever(): static { // Do whatever. return $this; } }
$object::class
Foo\Bar::class
use global functions;
use global consts;
function test(FooBar $param = null, $param2)
function test(?FooBar $param, $param2)
trait T { abstract function neededByTheTrait(int $a, string $b); } class C { use T; function neededByTheTrait(array $a, object $b) {} }
__toString()
class Foo { function __get(int $name) {} } (new Foo)->{42};
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЧрд▓рддреА рдпрд╛ рдЕрд╢реБрджреНрдзрд┐ рджрд┐рдЦрддреА рд╣реИ - рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдкреАрдПрдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВредрдкреНрд░рд╢реНрди рдФрд░ рд╕реБрдЭрд╛рд╡ рдореЗрд▓ рдпрд╛ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВредPHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдкрд░ рдЕрдзрд┐рдХ рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВредрд▓рд┐рдВрдХ рднреЗрдЬреЗрдВрд╕рднреА рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЦреЛрдЬреЗрдВтЖР рдкрд┐рдЫрд▓рд╛ рд░рд┐рд▓реАрдЬрд╝: PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдирдВрдмрд░ 170
Source: https://habr.com/ru/post/hi483684/More articles:рд╕рдм рдХреБрдЫ рдЖрдк рдореИрдХ рдкрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рдереЗрдмрд╛рдЗрдирд░реА рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ 2020 рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрдпреЛрдВ рд╣реЛрдВрдЧреЗрдПрдВрдб-рдЯреВ-рдПрдВрдб рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдФрд░ рд▓рд╛рдЧрдд рдХрд╛ рдЖрдХрд▓рдирдЖрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЦрд╛рдорд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПрдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рдкреНрд░рджрд░реНрд╢рди: рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдЕрднреНрдпрд╛рд╕рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП 32 рдЯрд┐рдкреНрд╕ рдЬреЛ 2020 рдореЗрдВ рдЦреБрдж рд╕реЗ рдКрдкрд░ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВNode.js рдореЗрдВ рд▓рдЧрднрдЧ 30x рдХреЙрдирд╕реЗрд░рд┐рдЯрд┐ рдмреВрд╕реНрдЯрдХреИрд╕реЗ LoRWWAN рдЪреАрдЬреЛрдВ рдХреА рдПрдХ рдЖрдзреБрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИрд╡рд░реНрд╖ рдХреЗ рднреМрддрд┐рдХ рдкрд░рд┐рдгрд╛рдо - 201913 рд╕реЗ 19 рдЬрдирд╡рд░реА рддрдХ рдорд╛рд╕реНрдХреЛ рдореЗрдВ рдбрд┐рдЬрд┐рдЯрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдоAll Articles