#1 Re: Tvorba webu » PHP problém s anonymní funkcí » 2012-07-16 23:30:28

spv

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  lol  Schválně doporučuji 
k přečtení.

#2 Re: Tvorba webu » PHP problém s anonymní funkcí » 2012-06-26 22:54:44

spv

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

#3 Re: Tvorba webu » PHP problém s anonymní funkcí » 2012-06-25 13:44:21

spv

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();
--------------------------------------

Zápatí

Založeno na FluxBB | CZ a SK