Calling variable functions with static variables
<p><em>Approach 1</em> would work, but <em>Approach 2</em> would not - it whould result in a fatal error (<em>Function name must be a string in...</em>)</p>

<pre><code># Approach 1
$function = self::$function and $function();

# Approach 2
self::$function and self::$function();
</code></pre>

<p>Isn't this a bit strange? I hope someone could explain.</p>

<hr>

<p>Edit: To give some context, here's a whole class:</p>

<pre><code>class Example
{
    static $function;

    static function method()
    {
        self::$function();
    }
}

function callback() {}

Example::$function = 'callback';
Example::method();
</code></pre>
