On 9/12/09 7:06 AM, Dmitriy Sintsov wrote:
> To me it's easy to release the new version, patch is one letter. But,
> I've studied other extensions and for example very professional Semantic
> MediaWiki also declares third parameter of tag hook method by reference:
> static public function doAskHook($querytext, $params,&$parser) {Most of those are old leftovers from PHP 4, which would copy objects instead of using sane value-reference semantics. These are being cleaned up in dev work for 1.6 as people are more actively testing with PHP 5.3.0. References for hook parameters should *only* be used for out-parameters where the hook needs to be able to return a new value to the caller, *not* for simply passing objects. > What should I do, wait for the Parser.php patch or to use less efficient > passing of large Parser object by value? Using a PHP reference here is actually less efficient and more error-prone. Passing objects "by value" in PHP 5 works the same as it does in Java, Python, etc -- that is, you're actually passing around a reference to the object... but if you were to, say, assign a different object to the variable in your function, *that* change would not propagate back to the caller, as you're passing the reference by value. Yeah I know, it's confusing. ;) Just stay away from references unless you're realllllly sure you need em. ;) -- brion _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
