* 
 */
class GenericProxyWeather
{
    protected $_subject;
    public function __construct($subject)
    {
        $this->_subject = $subject;
    }
    public function __call($method, $args)
    {
        return call_user_func_array(array($this->_subject, $method), $args);
    }
}
class Client
{
    static function main()
    {
        $proxy = new ProxyWeather();
        //         $report = $proxy->display('beijing');
    }
    static function Genericmain()
    {
        $proxy = new GenericProxyWeather(new RealWeather());
        //         $report = $proxy->display('beijing');
    }
}
header('Content-type:text/html;charset=UTF-8');
Client::main();
Client::Genericmain();