Nejste přihlášeni
Celý problém je způsoben eAcceleratorem , jak vyplývá z mnou již jednou zminovaného vlákana na endoře viewtopic.php?f=5&t=5557
Prakticky je tedy problém workaroudnutelný za cenu vypnutí eAcceleratoru kupříkladu v .htaccess pomocí direktiv:
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0
Pokud vám můj testcase funguje zde na endoře a s verzí PHP .13 je dost možné že jej již máte vypnutý.
Poznamenal bych, že mně celkem rozladila reakce technické podpory, která ani neví co to anonymní funkce je!
Ještě legračněji to vyznívá v referencovaném vlákně (výše). Tam je dokonce jako rada uvedeno, že má autor aplikace tuto přepsat podle "nových" pravidel PHP, asi že jsou anonyní funkce již nepodporované či co Schválně doporučuji
k přečtení.
Vaší odpovědi nerozumím.
Naštěstí jsem zjistil, že nejsem první kdo má u Endory problém s anonymními funkcemi
<!-- l --><a class="postlink-local" href="http://podpora.endora.cz/viewtopic.php?f=5&t=5557">viewtopic.php?f=5&t=5557</a><!-- l -->
Mimochodem pokud by jste chtěl vědět co jsou anonymní funkce
manuál je zde:
http://php.net/manual/en/functions.anonymous.php
Dobrý den!
Následující zdroják u mně doma na lokále (PHP 5.3.10) vytiskne 13, což je očekávaný výsledek.
ovšem na endoře (PHP 5.3.13) skončí chybou na radku 7: Fatal error: Function name must be a string.....
Zajímavé je, že pokud smazu deklaraci tridy functest a následné vytvoření její instance a volání metody
chyba zmizí.
Prosím o pomoc ....
-----------------------------
$func = function($arg)
{
echo $arg;
};
$func(1); // skonci chybou
class functest
{
public $functor_;
public function __construct($f)
{
$this->functor_ = $f;
}
public function doEcho()
{
$fn = $this->functor_;
$fn(3);
}
}
$k = new functest($func);
$k->doEcho();
--------------------------------------