返回空字符串或空值是否有更多优势?

2024-04-16

如果我正在编写以下方法(例如),那么以下方法是否被认为是良好的做法:

A:如果文档不存在则返回空字符串?

B:返回一个null value?

做了很多 Java 工作,并且 Java 中的方法需要返回类型,我的印象是返回一致的类型是最佳实践,PHP 中也是这种情况还是返回一个更好null值代替?

DocumentClass
{
    public function getDir($documentId)
    {
        /* Code to get location of document  */
        return (file_exists($document) ? $document : '');
    }
}

if (!empty($documentClass->getDir(5))
{
    /* Do this */
}

如果返回一个更好null值,你能解释一下为什么吗?


PHP 约定

返回布尔值FALSE.

面向对象方法

抛出异常。你还应该使用一种方法dir_exitsts(或您喜欢的任何其他名称)仅返回布尔值(true 或 false)。并在调用之前使用它getDir

这确实没有具体的规则。这完全取决于你。

我跟随PHP way正在返回false.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回空字符串或空值是否有更多优势? 的相关文章

随机推荐

  • Linux 如何在 x86-64 中支持超过 512GB 的虚拟地址范围?

    Linux 中 x86 64 的用户虚拟地址空间为 47 位长 这本质上意味着 Linux 可以映射大约 128 TB 虚拟地址范围的进程 然而 令我困惑的是 x86 64 架构支持 ISA 为每个进程定义的 4 级分层页表 排列为基数树
  • 将 WordprocessingMLPackage 保存到 ByteArrayInputStream

    如何将 org docx4j openpackaging packages WordprocessingMLPackage 实例保存到 ByteArrayInputStream 中 然后可以从服务器下载它 Thanks 您无法保存到Byte
  • 如何在 javascript 中检测 Shift + 键按下? [复制]

    这个问题在这里已经有答案了 可能的重复 如何捕获文本区域上的 Enter 按键而不是 Shift Enter https stackoverflow com questions 6178431 how to catch enter keyp
  • 为什么我在本地项目中不断收到“必须为不属于项目的 XAML 文件指定程序集”错误?

    首先 我想强调的是 我do知道如何在我的 XAML 文件中正确定义 XML 命名空间 这个重复的错误是not由我的代码中的错误引起的 问题是not阻止我的项目成功构建或运行以及提到的Converter类工作完美 当我构建项目时 错误消失了
  • 如何判断您的 C# 应用程序正在使用哪个 dll?

    我有一个使用 dll 的应用程序 该 dll 充满了位于位置 x 的 gui 应用程序代码 以前有 1 个按钮 现在有 2 个 当我启动我的应用程序时 我期望看到的是一个带有 2 个按钮的 gui 但是我看到一个带有 1 个按钮的 gui
  • 什么是卓悦?

    今天下午我在看WWDC视频时 听到了Bonjour这个词 所以我只想知道Apple中的Bonjour是什么 这只是为了澄清概念 Thanks 在计算领域 Bonjour 以前称为 Rendezvous1 http en wikipedia
  • Apollo GraphQL Lambda 处理程序无法读取未定义的属性“方法”

    我正在尝试在我的 AWS lambda 中运行 Apollo GraphQL 服务器 我正在使用来自的库here https www npmjs com package as integrations aws lambda 我还使用 CDK
  • Django 开发服务器可以正确提供 SVG 服务吗?

    我正在尝试使用以下方法提供 svg 地图 在 Firefox 中 这会导致插件提示 如果我重命名地图 svg to map xml它正确显示图像 我认为这是因为 Django 的开发服务器 具体来说django views static s
  • React Native android moveTaskToBack?

    有没有一个图书馆有这样的能力moveTaskToBack在反应本机 以前我用https github com jaysoo react native activity android https github com jaysoo reac
  • Gstreamer 中的图像幻灯片

    我想制作一个 GStreamer 应用程序 它采用 xml 文件处理其内容 提供图像 url 其重量以及在屏幕上显示的持续时间等信息 可以使用libxml在C中清楚地处理xml文件 但是我们如何使用 GStreamer 库创建图像的幻灯片
  • Java:迭代 org.w3c.dom.Document 中所有元素的最有效方法?

    在 Java 中迭代所有 DOM 元素最有效的方法是什么 类似这样的东西 但是对于当前的每个 DOM 元素org w3c dom Document for Node childNode node getFirstChild childNod
  • MySQL优化INSERT速度因索引而变慢

    MySQL 文档 http dev mysql com doc refman 5 0 en insert speed html say 假设 B 树索引 表的大小会使索引的插入速度减慢 log N 这是否意味着对于每个新行的插入 插入速度将
  • Java图形图像

    嘿 我在 Jpanel 中添加以下图像 msu footprints org 2011 Aditya map jpg http msu footprints org 2011 Aditya map jpg 然后添加多边形 int x new
  • 在 Linux 上安装 tar.gz

    我已经从以下位置下载了 Node js这个链接 https nodejs org en 单击按钮时指向此链接 https nodejs org dist v4 1 2 node v4 1 2 linux x64 tar gz https n
  • 为什么 1 不大于 -0x80000000 [重复]

    这个问题在这里已经有答案了 为什么1不大于 0x80000000 我知道这与溢出有关 但有人可以解释为什么吗 0x80000000 不是一个常量吗 我认为它是 assert 1 gt 0x80000000 C 中的断言触发器 这是为什么 我
  • 使用 jQuery 动态填写表单值

    我知道如何使用纯 PHP 执行此操作 但我需要在不重新加载页面的情况下执行此操作 无论如何 jQuery 是否可以有效地拉回一些数据库结果 基于用户在表单上的第一个文本字段中输入的内容 然后使用从数据库查询拉回的数据填充剩余的一些字段 本质
  • 运行 Jest 测试并收集特定目录中所有文件的覆盖率

    我正在使用以下代码对特定文件运行 Jest 测试 jest utils spec js collectCoverageFrom utils js 如果我想测试我使用的整个目录 jest someDirectory collectCovera
  • ...此内容也应该通过 HTTPS 加载

    再会 Site https mult privet com https mult privet com 在我的 Chrome 控制台中 我看到以下错误 blocked The page at https yandex st share ya
  • Vaadin Flow 应用程序自动在明暗模式之间切换

    Vaadin Flow 14 附带了两个捆绑主题的浅色和深色版本 Lumo and Material And now 浏览器可以向主机操作系统询问用户对浅色或深色模式的偏好 https stackoverflow com q 5084016
  • 返回空字符串或空值是否有更多优势?

    如果我正在编写以下方法 例如 那么以下方法是否被认为是良好的做法 A 如果文档不存在则返回空字符串 B 返回一个null value 做了很多 Java 工作 并且 Java 中的方法需要返回类型 我的印象是返回一致的类型是最佳实践 PHP