if (fun != null) {
if (fun != null && fun.canGenerateCall(_args)) {
  public void generateImpl(PhpWriter out, Class retType, boolean isRef)    throws IOException  {    // Quercus quercus = out.getPhp();    // StaticFunction fun = quercus.findFunction(_name);    PhpProgram program = out.getProgram();    AbstractFunction fun = program.findFunction(_name);        if (fun == null || ! fun.isGlobal())      fun = program.getPhp().findFunction(_name);    if (fun != null) {      if (void.class.equals(retType))	fun.generateTop(out, this, _args);      else if (boolean.class.equals(retType))	fun.generateBoolean(out, this, _args);      else if (isRef)	fun.generateRef(out, this, _args);      else	fun.generate(out, this, _args);    }    else {      // super.generate(out);      // XXX: need to check where it's from      out.print("env.getFunction(\"");      out.printJavaString(_name);      if (isRef)	out.print("\").evalRef(env");      else	out.print("\").eval(env");      if (_args.length <= COMPILE_ARG_MAX) {	for (int i = 0; i < _args.length; i++) {	  out.print(", ");	  _args[i].generateArg(out);	}      }      else {	out.print(", new Value[] {");	for (int i = 0; i < _args.length; i++) {	  if (i != 0)	    out.print(", ");	  _args[i].generateArg(out);	}	out.print("}");      }            out.print(")");          if (boolean.class.equals(retType))	out.print(".toBoolean()");    }  }