Use json encoding logic for <list> and <set> args in Thrift PHP/REST

Reviewed By: hzhao

Test Plan: Data store API interface


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665294 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_php_generator.cc b/compiler/cpp/src/generate/t_php_generator.cc
index 70dbb51..21d3253 100644
--- a/compiler/cpp/src/generate/t_php_generator.cc
+++ b/compiler/cpp/src/generate/t_php_generator.cc
@@ -912,15 +912,12 @@
           ((t_base_type*)atype)->is_string_list()) {
         f_service_ << 
           indent() << "$" << (*a_iter)->get_name() << " = explode(',', $" << (*a_iter)->get_name() << ");" << endl;
-      } else if (atype->is_map()) {
+      } else if (atype->is_map() || atype->is_list()) {
         f_service_ << 
           indent() << "$" << (*a_iter)->get_name() << " = json_decode($" << (*a_iter)->get_name() << ", true);" << endl;
-      } else if (atype->is_list()) {
-        f_service_ << 
-          indent() << "$" << (*a_iter)->get_name() << " = explode(',', $" << (*a_iter)->get_name() << ");" << endl;
       } else if (atype->is_set()) {
         f_service_ << 
-          indent() << "$" << (*a_iter)->get_name() << " = array_fill_keys(explode(',', $" << (*a_iter)->get_name() << "), 1);" << endl;
+          indent() << "$" << (*a_iter)->get_name() << " = array_fill_keys(json_decode($" << (*a_iter)->get_name() << ", true), 1);" << endl;
       }
     }
     f_service_ <<