phpbar.de logo

Mailinglisten-Archive

[php] Objekt klonen oder kopieren je nach Version

[php] Objekt klonen oder kopieren je nach Version

Yannik Hampe yannik at cipher-code.de
Fre Mar 7 15:50:32 CET 2008



Peter Bieling wrote:
> Hallo zusammen,
> 
> kennt jemand eine saubere Möglichkeit, so etwas zu realisieren, ohne 
> dass es in PHP4 eine Fehlermeldung gibt?
> 
>     if (version_compare(PHP_VERSION, "5.0.0", "<") > 0) {
>        $pdfcopy = $pdf;
>     } else {
>        $pdfcopy = clone $pdf;
>     }

So:
if (... php5 ...) $clonefunc =create_function('$a','return clone $a;');
else $clonefunc =create_function('$a','return $a;');
$pdfcopy =$clonefunc($pdf);

Das ist besser als eval, da eval sehr langsam ist. Ausserdem ist eval
auch gerne mal gesperrt. Die Lösung mit create_function ist auf meinem
System ca. 3 mal so schnell wie die Lösung mit eval, wenn ich
create_function für jeden $clonefunc-Aufruf neu aufrufe ist die Lösung
3x so schnell. Wenn ich create_function nur einmal aufrufe, dann noch
wesentlich schneller. Bei 10.000 Iterationen um ungefähr das 30-fache.
> 
> Viele Grüße
> 
> Peter
Yannik

php::bar PHP Wiki   -   Listenarchive