getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PRIVATE | ReflectionProperty::IS_PROTECTED); //通过反射取得所有属性和属性的值 $arr = []; foreach ($props as $prop) { $prop->setAccessible(true); $key = $prop->getName(); $value = $prop->getValue($param); $arr[$key] = $value; } //按key的字典序升序排序,并保留key值 ksort($arr); //拼接字符串 $str = ''; $i = 0; foreach($arr as $key => $value) { //不参与签名、验签 if($key == "sign" || $key == "sec_key"){ continue; } if($key == 'resp_code' && !$value){ continue; } if($value === null){ $value = ''; } if($i !== 0){ $str .= '&'; } $str .= $key . '=' . $value; $i ++; } return $str; } }