_value.generateAssignRef(out, valueVar);
_value.generateAssignRef(out, new RawExpr(valueVar), true);
  protected void generateImpl(PhpWriter out)    throws IOException  {    int id = out.generateId();    String objVar = "quercus_obj_" + id;    String keysVar = "quercus_keys_" + id;    String valuesVar = "quercus_values_" + id;    String indexVar = "quercus_index_" + id;    out.print("Value " + objVar + " = ");    _objExpr.generate(out);    out.println(";");    if (_key != null || _isRef)      out.println("Value []" + keysVar + " = " + objVar + ".getKeyArray();");    if (! _isRef)      out.println("Value []" +                  valuesVar +                  " = " +                  objVar +                  ".getValueArray(env);");    if (_key != null || _isRef) {      out.println("for (int " + indexVar + " = 0; " +                  indexVar + " < " + keysVar + ".length; " +                  indexVar + "++) {");    } else {      out.println("for (int " + indexVar + " = 0; " +                  indexVar + " < " + valuesVar + ".length; " +                  indexVar + "++) {");    }    out.pushDepth();    String keyVar = keysVar + "[" + indexVar + "]";    if (_key != null) {      _key.generateAssign(out, new RawExpr(keyVar), true);      out.println(";");    }    if (_isRef) {      String valueVar = objVar + ".getRef(" + keyVar + ")";      _value.generateAssignRef(out, valueVar);      out.println(";");    } else {      String valueVar = valuesVar + "[" + indexVar + "]";      _value.generateAssign(out, new RawExpr(valueVar), true);      out.println(";");    }    _block.generate(out);    out.popDepth();    out.println("}");  }