I was doing some work in PHP that, at least as I was approaching it, made use of many arrays. Having spent too much time in Lisp and company, I used functions like array_map regularly as the more expressive, concise, and elegant way to do my crunching. Several of these functions had their home within a class and were private static functions.

My test box had the following version:
PHP 5.2.6-2ubuntu4 with Suhosin-Patch (cli) (built: Oct 14 2008 20:06:32)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

and the live server:
PHP 5.2.0-8+etch13 (cli) (built: Oct 2 2008 08:26:18)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies

True the test box was slightly newer, but not so much that it usually matters. In review, the test box allowed code like the following:

class Foo
     private static function exampleUpper($a)
         return strtoupper($a);

      function something()
          $a = array('a', 'b', 'c');
          return array_map('Foo::exampleUpper', $a);


Naturally, the original code in question actually did stuff, but this should get the point across. The idea of using the :: operator (on a public or private static function) worked in the slightly later version of PHP, but not the earlier. The more's the pity, too.