我正在开发一个连接到RESTful Web服务的PHP应用程序,该服务本身连接到数据库。在我的RESTful中,我有一个Enum,它将Enum的值保存为数据库中的整数。但是当我必须在PHP层中制作GET Api时,无论如何我都可以以某种方式进行转换,我不知道这是否是正确的单词,将int值转换为字符串以便代替显示2它显示“单“例如。
这是我在Webservice中的Enum。
public enum BookingType { Single, Group, Tournament }
这就是php部分。
<?php
$uri2 = "http://examdatabasebooking.cloudapp.net/BookingService.svc/getbookings/";
if (isset($_POST["DateAndTimeFrom"])) {
$FDateAndTimeFrom = $_POST["DateAndTimeFrom"];
$jsondata = file_get_contents($uri2 . $FirstName);
$booking = json_decode($jsondata, TRUE);
注意:在foreach中我只尝试将提取类型作为值提取,然后将值设置为包含Enum值的数组,因此每次我获取预订时,取决于它将写出的枚举值,团体或比赛..但它不起作用..
foreach ($booking as $value) {
$jsondata = $value["BookingType"];
$value = array("Single" => 0, "Group" => 1, "Tournament" => 2);
}
if(empty($booking)) {
echo "No bookings!";
else {
echo $booking["DateAndTimeFrom"] . " " . $booking["DateAndTimeTo"] . " " . $booking["BookingType"];
}
}
?>
这就是打印出的内容: DateAndTimeFrom:2016年10月5日下午1:00 DateAndTimeTo:2016年10月5日下午2:00 BookingType:2&lt; =这应该打印出锦标赛而不是2
答案 0 :(得分:1)
您可以为您的值声明一个数组。
$bookingTypes = array(
'Single',
'Group',
'Tournament'
);
使用$booking['bookingType']
:
echo $bookingTypes[$booking['bookingType']]; // Tournament
如果您有自定义值而不是0, 1 and 2
:
$bookingTypes = array(
9 => 'Single',
20 => 'Group',
54 => 'Tournament'
);