提问者:小点点

PHP字符串参数最佳实践


我有一个PHP函数,它在内部使用一个字符串参数构建一个对象图,然后使用json_encode()创建一个json字符串,然后将json字符串发布到远程web服务。

这样地:

function send($text)
{
    $payload = array(
        'text' => $text
        // Set additional properties here ...
    );

    $payload_json = json_encode($payload);

    // Post $payload_json to remote service with Curl ...
 }

从json_编码手册(http://php.net/manual/en/function.json-encode.php)

所有字符串数据必须是UTF-8编码。

我看到了几个选择:

  • 尝试验证$text实际上是UTF-8,如果不是,则抛出异常
  • 尝试检测$text中的编码,并在必要时将其转换为UTF-8
  • 当$text不是UTF-8时返回false
  • 在留档中与我的API用户沟通,$text必须是UTF-8
  • 使用json_last_error()检查错误,如果遇到错误,则抛出异常

最佳做法是什么?


共1个答案

匿名用户

您应该始终向API用户传达您的期望。

如果您希望使用UTF-8编码文本,请在文档中说明。

一旦它在那里,您应该返回一个描述性错误,例如“编码无效,有关更多信息,请阅读文档:link”,其中link指向失败调用的相关页面

这样,您就不再负责了,使用您的API的开发人员将知道出了什么问题,您不必在API中担心它。

你是开发者,这是你的应用编程接口,你的应用编程接口有自己的规则,如果人们想使用它,他们需要遵循你设置的规则。