Uwaga: Mam skrapla ten artykuł do mojej osoby wiki: http://wiki.chacha102.com/Lambda - CieszLambda Funkcje w PHP nie są logiczne
Mam pewne problemy z funkcjami typu Lambda w PHP.
Po pierwsze, to działa:
$foo = function(){ echo "bar"; };
$foo();
drugie, to działa:
class Bar{
public function foo(){
echo "Bar";
}
trzecie, działa to:
$foo = new stdClass;
$foo->bar = function(){ echo "bar"; };
$test = $foo->bar;
$test();
Ale to nie działa:
$foo = new stdClass;
$foo->bar = function(){ echo "bar"; };
$foo->bar();
I to nie działa
class Bar{
public function foo(){
echo "Bar";
}
$foo = new Bar;
$foo->foo = function(){ echo "foo"; };
$foo->foo(); // echo's bar instead of Foo.
moje pytanie jest Dlaczego?, i jak mogę zapewnić, że zarówno w tym:
$foo->bar = function(){ echo "test"; };
$foo->bar();
i to
$foo = new Bar;
$foo->bar();
nazywane są prawidłowo? Dodatkowe punkty, jeśli możesz wskazać dokumentację stwierdzającą, dlaczego występuje ten problem.
To razem z innymi komentarzami pozwala mi ustawić klasę 'stdObj', której mogę użyć do niezawodnego tworzenia obiektów bez klasy (rodzaju). Dzięki! –