From a323f1e65da2c512f971a2edf1918a0cca340015 Mon Sep 17 00:00:00 2001 From: Paul Yang Date: Fri, 27 Jan 2017 13:17:54 -0800 Subject: Oneof accessor should return the field name that is actually set. (#2631) --- php/src/Google/Protobuf/Internal/Message.php | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'php/src/Google/Protobuf/Internal/Message.php') diff --git a/php/src/Google/Protobuf/Internal/Message.php b/php/src/Google/Protobuf/Internal/Message.php index 3d1f1598..031c82a2 100644 --- a/php/src/Google/Protobuf/Internal/Message.php +++ b/php/src/Google/Protobuf/Internal/Message.php @@ -163,6 +163,17 @@ class Message $oneof_field->setNumber($number); } + protected function whichOneof($oneof_name) + { + $oneof_field = $this->$oneof_name; + $number = $oneof_field->getNumber(); + if ($number == 0) { + return ""; + } + $field = $this->desc->getFieldByNumber($number); + return $field->getName(); + } + /** * @ignore */ -- cgit v1.2.3