Mailinglisten-Archive |
Peter Bieling schrieb: > Sebastian Mendel schrieb: > >>>> Auch nicht sauber, aber vielleicht die bessere Lösung. >>> danke, das habe ich jetzt so übernommen. Die Variante von Sebastian >>> funktioniert bei mir zwar auch, ich weiß aber nicht, ob in allen Versionen. >> in allen Versionen, hat nichts mit clone oder clone() oder OOP zu tun, >> sondern damit das clone als Schlüsselwort behandelt wird und clone() als >> Funktion, und ob Funktionen tatsächlich existieren wird erst überprüft wenn >> die Zeile tatsächlich ausgeführt wird ... > > danke, die Erklärung für PHP4 leuchtet mir ein. Was ist aber mit dem > Einwand von Mr. Wittens? > http://acko.net/node/54 > "PHP 4 on the other hand will think clone() is a function. [...] das Problem tritt doch aber nur auf, weil er in diesem Moment clone() probiert (was in PHP 5 funktioniert), und er jetzt feststellt was passiert wenn dieser Code in PHP 4 läuft - wir sind doch aber schon viel weiter, denn clone() wird gar nicht ausgeführt wenn PHP 4 läuft ... das End-Ergebnis: function drupal_clone($object) { return version_compare(phpversion(), '5.0') < 0 ? $object : clone($object); } ist doch selbe wie: if (version_compare(PHP_VERSION, "5.0.0", "<") > 0) { $pdfcopy = $pdf; } else { $pdfcopy = clone($pdf); } wie $pdfcopy = (version_compare(PHP_VERSION, "5.0.0", "<") > 0) ? $pdf : clone($pdf); wie $pdfcopy = (version_compare(PHP_VERSION, "5.0") < 0) ? $pdf : clone($pdf); > usw. Also auch wieder eval(). > > Da ich keine Fehlermeldung bei PHP5 festgestellt habe, ist die Frage, ob > frühere PHP5 Versionen Zicken machen, wenn man ihnen clone ($obj) statt > clone $obj vorsetzt. wohl eher PHP 4 ... -- Sebastian
php::bar PHP Wiki - Listenarchive