Catchable fatal error: Object of class Closure could not be

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Alex03
Mesaje:7

Catchable fatal error: Object of class Closure could not be

Salut! Am o nelămurire cu privire la ultimul exemplu din lecţia 41.PHP Functii Anonime - Closures. Am încercat să rulez exemplul, şi îmi dă următoarea eroare: Catchable fatal error: Object of class Closure could not be converted to string in filepath on line 10. Acesta este exemplul:

Cod: Selectaţi tot

<?php
class A {
  private $value = 1;
  public function getVal() {
    return function() { return $this->value * 2; };
  }
}

$a = new A;
echo $a->getVal();        // 2
?>
De ce nu a putut converti funcţia anonimă în sir?

MarPlo Mesaje:4343
Salut
In php nu merge sa adaugi dupa return o functie anonima, ci o valoare sau nume de functie care exista inregistrat in memorie pana la efectuarea return.
Asa merge:

Cod: Selectaţi tot

class A {
  private $value = 1;
  public function getVal() {
     function fun($param) { return $param * 2; };

     return fun($this->value);
  }
}

$a = new A;
echo $a->getVal();        // 2