Funcțiile anonime pot fi declarate static. Acest lucru îi împiedică să aibă clasa curentă legată automat de ele. De asemenea, obiectele pot să nu fie legate de ele în timpul execuției.
Exemplul #6 Încercarea de a folosi $this
într-o funcție anonimă statică
<?php
class
Foo
{
function
__construct()
{
$func
= static function() {
var_dump($this);
};
$func();
}
};
new Foo();
?>
Exemplul de mai sus va afișa:
Notice: Undefined variable: this in %s on line %d NULL
Exemplul #7 Încercarea de a lega un obiect la o funcție anonimă statică
<?php
$func = static
function() {
// function
body
};
$func
=
$func->bindTo(new
stdClass);
$func();
?>
Exemplul de mai sus va afișa:
Warning: Cannot bind an instance to a static closure in %s on line %d
Jurnalul modificărilor
Versiunea | Descriere |
---|---|
7.1.0 | Funcțiile anonime nu se pot închide peste superglobale, $$this sau orice variabilă cu același nume ca parametru. |
Note
Notă: Este posibil să utilizați func_num_args(), func_get_arg() și func_get_args() dintr-o închidere.
Sursa: PHP Manual, licența CC BY 3.0. Traducere și adaptare: Nicolae Sfetcu
Lasă un răspuns