PHP 中有“nullsafe 运算符”吗?

2024-01-23

有没有办法使用某种方式编写以下语句安全导航操作员 http://docs.codehaus.org/display/GROOVY/Operators#Operators-SafeNavigationOperator?

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';

所以它看起来像这样:

echo $data->getMyObject()?->getName();

从 PHP 8 开始,您可以使用空安全运算符 https://wiki.php.net/rfc/nullsafe_operator与空合并运算符相结合,您可以编写如下代码:

echo $data->getMyObject()?->getName() ?? '';

通过使用?->代替->运算符链终止,结果将为空。

“查看对象内部”的操作符被视为链的一部分。

  • 数组访问 ([])
  • 财产访问(->)
  • Nullsafe 属性访问 (?->)
  • 静态属性访问 (::)
  • 方法调用 (->)
  • Nullsafe 方法调用 (?->)
  • 静态方法调用 (::)

例如对于代码:

$string = $data?->getObject()->getName() . " after";

如果 $data 为 null,则该代码相当于:

$string = null . " after";

由于字符串连接运算符不是“链”的一部分,因此不会短路。

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

PHP 中有“nullsafe 运算符”吗? 的相关文章

  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi
  • PHP 换行符 (\n) 不起作用

    由于某种原因我无法使用 n使用 PHP 输出到文件时创建换行符 上面只写着 n 到文件 我尝试使用 n 同样 它只写 n 如预期 但我一生都无法弄清楚为什么在字符串中添加 n 不会创建新行 我也尝试过 r n但它只是附加 r n 到文件中的
  • 在Windows上安装php Composer时出现错误

    在安装 Composer 以使用 Laravel 框架时 我遇到了一些错误 Download failed file get contents SSL operation failed with code 1 OpenSSL Error m
  • 使用php在html页面中显示bbcode

    我已经有一个 bbcode 字符串 mybbcode b Hello word b 使用 php 我想在 html 页面中以 html 格式显示它 例如 div gt b hello word b div 基本上其他人已经对你说过了 但是如
  • 如何使用 php imap 将邮件消息移动到文件夹

    我似乎无法将邮件移至已保存的文件夹 这是我的代码 mbox imap open mail server mail port mail folder mail username mail password or die Error openi
  • 在 Drupal 中选择性地删除页面的样式表

    我正在尝试为首页制作不同的布局 在此过程中 我声明了名为 front page css 和 page front tpl php 的新样式表 我正在使用加载responsive sidebar css 的 Zen 子主题 我想删除 resp
  • 如何在 PHP 中将默认日期设置为波斯日期?

    如何在 PHP 中将默认日期设置为波斯日期 说吧 如果我echo这个功能date Y m d 然后它会显示2018 03 05但我想要1396 12 14波斯日期 请检查 http php net manual en intldatefor
  • 如何使用 RewriteRule 来为 PHP 修改 $_SERVER['REQUEST_URI'] ?

    有了这个 htaccess RewriteEngine On RewriteRule foo foo 1 here I tried L PT C etc RewriteRule index php L 我已经尝试了第一个 RewriteRu
  • PHP 从日志事件中获取行号

    好的 我还有一个问题HERE https stackoverflow com questions 3213423 php how could i make this class better suggestions feedback wel
  • 同一路由组的多个前缀

    我正在为一所学校编写一个相当简单的网站 该网站有新闻 文章 视频剪辑 等 它的工作方式是在主页中我们向访问者展示一些课程 例如 gt math gt geography gt chemistry 用户在其中选择 1 网站内容会根据用户的选择
  • 正确的标头 php mysql blob 显示图像

    我正在尝试在我的 PHP 页面中显示来自 mysql blob 的图像 我知道这不是最佳实践 然后我会将其引入我的 iOS 应用程序中 我在设置页面标题时遇到问题 我认为需要将其设置为图像 所以 这显示了图像 但我不相信页眉是正确的 hea
  • 使用php插入sql数据库时出错

    我有一个带有 MySQL 插入查询的程序 sql INSERT INTO people person id name username password email salt VALUES person id name username p
  • PHP别名@函数

    我是 PHP 新手 看到一些使用 前缀调用函数 如 mysql ping 的示例 我感到很困惑 它是做什么用的 谷歌搜索 搜索没有太大帮助 因为 被丢弃并且 别名 不是足够好的关键字 抑制错误 警告和通知 如果你用自定义的方式补充它 你可以
  • PHP 负面因素不断增加

    我这里有这个代码 remaining 0 foreach clientArrayInvoice as key gt row remaining remaining row total 它的作用是 它获取总计值并将它们相加 但是当我有负值时
  • 如何缓存 twitter api 结果?

    我想缓存 twitter api 结果的结果并将其显示给用户 缓存结果的最佳方法是什么 我正在考虑根据时间限制将结果写入文件 可以吗 还是应该使用任何其他方法 最重要的是 理想的缓存时间是多少 我想显示来自 twitter 的最新内容 但
  • PHP:展平数组-最快的方法? [复制]

    这个问题在这里已经有答案了 是否有任何快速方法可以在不运行 foreach 循环的情况下展平数组并选择子键 在本例中为 键 和 值 或者 foreach 始终是最快的方法 Array 0 gt Array key gt string val
  • 如何检查一个值是否已经存在以避免重复?

    我有一个 URL 表 但我不想要任何重复的 URL 如何使用 PHP MySQL 检查给定 URL 是否已在表中 如果您不想重复 可以执行以下操作 添加唯一性约束 use REPLACE http dev mysql com doc ref
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用
  • 使用 html5 分块上传文件

    我正在尝试使用 html5 的文件 API 分块上传文件 然后在服务器端用 php 重新组装它 我正在上传视频 但是当我在服务器端合并文件时 大小增加了 并且它变成了无效文件 请注意 以下 html5 代码仅适用于 chrome 浏览器 在
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php

随机推荐

  • 使用 Netezza 时差(以秒为单位)?

    我想获取 Netezza 中以分钟为单位的时差 以秒为单位 我有 2 列 Start 2014 06 01 07 45 04 and finish 2014 06 01 07 46 58 events 我尝试过使用DATEDIFF SECO
  • 如何查看设备是iPhone 5? [复制]

    这个问题在这里已经有答案了 如何检查应用程序是否在 iPhone 5 上运行 然后执行某些操作 define IS IPHONE 5 fabs double UIScreen mainScreen bounds size height do
  • 列表查找比元组更快?

    过去 当我需要在紧密循环中进行类似数组的索引查找时 我通常使用元组 因为它们通常看起来性能非常好 接近于仅使用 n 个变量 然而 我今天决定质疑这个假设 并得出了一些令人惊讶的结果 In 102 l range 1000 In 103 t
  • 从 GeoPy 地理编码器返回各个地址组成部分(城市、州等)

    我正在使用 GeoPy 将地址地理编码为经纬度 我还想提取每个地址的逐项地址组成部分 街道 城市 州 邮政编码 GeoPy 返回一个带有地址的字符串 但我找不到可靠的方法来分离每个组件 例如 123 Main Street Los Ange
  • 使用 sklearn 和线性回归时出错:形状 (1,16) 和 (1,1) 未对齐:16 (dim 1) != 1 (dim 0)

    我想了解机器学习 我偶然发现了 youtube Siraj 和他的 Udacity 视频 并想尝试学习一些东西 他的视频参考 在他的视频中 他导入并读取了一个txt文件 但是当我尝试重新创建txt文件时 它无法正确读取 相反 我尝试使用相同
  • 将 ruby​​ 变量传递给配置者

    我有一个 Vagrant 文件 它定义了这样的配置程序 config vm provision shell path gt set rmi hostname sh args gt
  • 如何向 GCP 中的 dataproc 集群添加 jar 依赖项?

    特别是 如何添加 Spark bigquery connector 以便可以从 dataproc 的 Jupyter Web 界面中查询数据 关键链接 https github com GoogleCloudPlatform spark b
  • 获取乳胶输出块的高度

    我正在尝试确定如何获得乳胶块的高度output not整个文件 以及not代码 而是一个block of output 作为我想要完成的一个例子 我有乳胶代码 sum i 0 infty frac 1 n gt infty newline
  • 删除不再位于远程的跟踪分支

    有没有一种简单的方法可以删除远程等效项不再存在的所有跟踪分支 Example 分支机构 本地和远程 master 起源 主人 起源 错误修复 a 起源 错误修复 b 起源 错误修复 c 在本地 我只有一个主分支 现在我需要努力错误修复a 所
  • 如何删除布局和背景之间的空间?

    我拥有的是一个相对布局 其中包含其他两个相对布局 每个布局都有图像 我已将每个图像作为其相对布局的背景 但我仍然可以看到图像 布局 和整个父布局之间的空间 那么我怎样才能删除这个空间呢 这是我的 XML 代码
  • Chrome v41+ 显示性能问题:无;在很多节点上

    我最近注意到 Chrome 在申请时出现呕吐现象display none 到很多节点 CodePen 示例 http codepen io mattdietsche pen JomjWx 在上面的 CodePen 中 您可以看到切换时的滞后
  • 基础5和页面打印

    我正在使用 Zurb 基金会 我试图完全按照大屏幕中的外观打印页面 但所有内容都堆积起来 并且浮动错误 通过将 Foundation min css 中出现的每个 屏幕 替换为 打印 屏幕 我成功地在打印页面中添加了网格 问题是现在取的格子
  • 在多租户架构中为每个租户将异常记录在单独的文件中

    我有一个支持多租户的应用程序 即一台服务器和多个数据库 每个租户都有单独的数据库 应用程序中引发的所有异常都将记录在一个日志中 租户 ID 将与异常一起打印 我想在单独的文件中处理它 即为每个租户一个单独的日志文件 这将有助于确定此异常是由
  • 如何从网页复制特定元素

    我的目标是从网页中获取特定的文本区域 想象一下 就好像您能够在页面上的任何位置绘制一个矩形 并且该矩形中的所有内容都将被复制到剪贴板中 我正在使用 FireBug 请随意建议其他解决方案 我已经搜索了插件或书签 但没有找到任何有用的东西 及
  • Android 应用程序白标 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在尝试寻找为 Android 应用程序添加白色标签的最佳方法 基本上我希望能够构建几乎相同应用程序的多个版本 每个版本将具有不同的资源 例如
  • 多个程序集中相同的完全限定类名

    当我们在两个不同的程序集中定义相同的命名空间和类名而不使用 extern 别名来帮助它决定时 NET 编译器 以及运行时的 CLR 如何确定要使用哪个类 考虑这个示例 全部都在一个 cs 文件中 using System namespace
  • 序列化包含 char* 的结构

    我在序列化 char 字符串时遇到错误error C2228 left of serialize must have class struct union我可以使用 std string 然后从中获取 const char 但我需要 cha
  • 如何从 AWS 中的 Athena 获取结果格式 JSON?

    我想从 AWS 中的 Athena 获取结果值格式 JSON 当我从 Athena 中选择时 结果格式如下 test value report 1 test report 2 normal report 3 hard 有没有办法获得 JSO
  • 如何从 AAssetManager 获取 std::basic_istream?

    我正在使用 NDK 我需要读取资源媒体文件 因此 据我了解 为了访问我需要使用的资源AAssetManager 最终我需要得到std basic istream与它一起工作 那么问题来了 如何获得std basic istream from
  • PHP 中有“nullsafe 运算符”吗?

    有没有办法使用某种方式编写以下语句安全导航操作员 http docs codehaus org display GROOVY Operators Operators SafeNavigationOperator echo data gt g