【发布时间】:2021-07-25 20:24:09
【问题描述】:
我有一些 PHP sn-ps 用于我试图限制来自 JavaScript 应用程序前端请求的输入的应用程序。该页面使用 JSON 对象发送请求,该对象包含我指定为“打开”、“完成”或“关闭”的字段值。我想防止不必要的输入篡改或值被发送。
问题:
下面的属性 $eventstatus 是用枚举提示的类型,但是当我在 $array['EventStatus'] PHP (7.4.9) 中分配字符串值时,会报告我的类型不兼容的错误。实际上我正在为其分配一个字符串时,它需要查看一个状态类型。
我该如何解决这个问题?
$event->eventstatus = $array['EventStatus'];
枚举类(状态)
<?php
namespace app\enums;
abstract class Status
{
const Open = 'Open';
const Complete = 'Complete';
const Closed = 'Closed';
}
Mapper 类成员函数 - sn-p,下面的代码接受一个数组值并将其映射到类属性
<?php
function mapFromArray($event, $array) {
if (!is_null($array['EventStatus'])) $event->eventstatus = $array['EventStatus'];
}
模型类
<?php
namespace data\model;
use app\enums\Status;
class Event
{
public $eventid;
public $riskid;
public $eventtitle;
public Status $eventstatus;
}
【问题讨论】:
-
$array['EventStatus']是什么? -
目前我已经根据输入字段中值的完成和单击提交按钮为其分配了一个字符串值“打开”、“完成”或“关闭”。 $array 包含来自前端应用程序的 JSON 值。我的目标是防止将无效的字符串值发送到服务器。
-
这能回答你的问题吗? Enumerations on PHP
-
为什么不使用包含有效值的简单数组并使用
in_array()?Status不是string
标签: php