I can't think of one. We need to be able to pass an arbitrary number of parameters to login() for multi factor auth, hence the need for `call_user_func_array`, which needs a callback. If you do `array('Net_SSH2', 'login')` `$this` will be null in PHP4 but it isn't if you do `$this`. For PHP4 compat it needs to be passed by reference. It's not really an issue in getLog because getLog doesn't change the state of anything. This function does.

Also, per http://php.net/manual/en/language.references.pass.php, "call-time pass-by-reference was removed [in PHP 5.4], so using it will raise a fatal error" and yet this doesn't even raise an E_NOTICE on PHP 5.5.

Technically, in the php5 branch, none of these changes are even necessary. 0x100000000 works just fine in PHP 5.2+. In my testing $_SESSION is always defined in PHP 5.1 or something and later and it's not like we've gotten bug reports about that anyway. fwiw.

I mean, I suppose the fact that Net_SSH2 doesn't currently work on PHP4 could be used as evidence that phpseclib should just be PHP5-only but I disagree. PHP4 compatibility is still pretty easy (as this commit is testament to) and I think it helps legitimize the claim that phpseclib is "ultra-compatible". I suppose it's a feature that's going to see the most use in marketing material (which to an extent the website is) but a feature that has no use outside marketing can still be a useful feature.

Anyway, we've been over that before. No need to beat a dead horse.