返回类型为空

2024-01-08

我正在使用 PHP 7 测试返回类型。

我创建了一个简单的脚本来测试 PHP 7 的返回类型:

<?php

Class Obj {

    public function __construct(){

    }

    public function test(): string { //a string needs to be returned
        return "ok";
    }

}

function foo(): Obj { //instance of Obj needs to be returned
    return new Obj();
}

$o = foo();
echo $o->test(); // output: ok

现在在其他编程语言中,当您指定返回类型时void这意味着您不能返回任何内容,否则您将收到错误。所以我写了这个脚本:

<?php

    function foo(): void {

    }

    foo(); 

现在,在上面的脚本中,预期的输出什么也没有。 相反,它给了我一个致命错误:

致命错误: foo() 的返回值必须是 void 的实例,第 2 行没有返回

我的问题是(我找不到),在 PHP 7 中会有类似的吗void type?


Edit:

一个新的单独的 RFC返回类型为空 https://wiki.php.net/rfc/void_return_type已发布,已通过投票,并在 PHP 7.1 中实现。
现在有一个voidPHP 中的返回类型。 :)

原帖:

取自维基百科.php.net https://wiki.php.net/rfc/return_types:

未来的工作

超出本 RFC 范围的未来工作想法包括:

  • 允许函数声明它们根本不返回任何内容(Java 和 C 中为 void)

所以目前没有办法声明你不退回任何东西。
我不知道在你的情况下什么是最好的,但我可能只是暂时不声明返回类型。

回答你的问题是否会有voidPHP 7 中的返回类型:
没有保证还没有,但我认为很有可能void或者同义词将以某种方式实现。

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

返回类型为空 的相关文章

  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • 如何在html中制作多行类型的文本框?

  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将
  • 如何在 Zend Framework 中处理移动设备?

    我接手了一个噩梦般的项目 我正在迁移一个写得很差的站点 并慢慢地将其迁移到 Zend Framework 应用程序中 不幸的是 我没有时间做补救工作 使这变得可以忍受 也许是一个或两个模型 我现在被告知该网站很快就会有移动版本 建议是克隆旧
  • 如何确定当前使用哪个网格选项

    我将 Bootstrap 3 用于使用 PHP 和 HTML 创建的网页 随着响应式网格和类的开启引导程序3您可以将多个类分配给一个 div 以根据当前屏幕尺寸定义不同的宽度 例如 div class col lg 3 col md 3 c
  • 如何将粘在一起的单词分开?

    我有很多命名不好的文件 videoofmegoingtoschool avi 是否有一个库或某种算法可以正确地将其分离 video of me going to school avi 我不认为那里有什么 我可以想象一个程序 它使用单词词典并
  • 如何在 WordPress 中按类别获取所有帖子

    我想在 WordPress 中按类别获取帖子 args array post type gt project postslist get posts args 0 gt WP Post 对象 ID gt 421 post author gt
  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • PHP使用auto_increment生成短唯一ID?

    我想生成一个简短的 唯一的 ID 而不必检查冲突 我目前正在做类似的事情 但是我当前生成的 ID 是随机的 并且在循环中检查冲突很烦人 并且如果记录数量显着增加 将会变得昂贵 通常担心冲突不是问题 但我想要生成的唯一 ID 是一个由 5 8
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • UTF-8、PHP、Win7 - 现在是否有解决方案可以使用 php 在 Win 7 上保存 UTF-8 文件名?

    更新 只是为了不让您阅读所有内容 PHP 开头 7 1 0alpha2 在 Windows 上支持 UTF 8 文件名 感谢阿纳托尔 贝尔斯基 根据 stackoverflow 上的一些链接 我找到了部分答案 https stackover
  • magento成功页面变量

    我正在尝试捕获一些 magento 成功页面变量以传递给我们的广告公司 到目前为止 我已经得到了这个 但变量没有输出任何内容 数据需要采用以下格式 price1 price2 price3 qty1 qty2 qty3 sku1 sku2
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时
  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records
  • 如何在 PHP 中从字符串类名实例化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何创建返回方法名称的新实例 不幸的是我收到这个错误 错误 类名必须是有效的对象或字符串 这是我的代码 class Foo public f

随机推荐

  • 使用超类静态方法获取子类的实例

    我有一个超类 我想转发一个名为的静态方法getInstance 到所有子类 创建子类的实例时 我然后在超类中注册该实例 可能使用哈希表 其中键基于getClass 然后 我希望使用前面提到的静态方法 getInstance 其中超类方法将返
  • PHP 中使用特殊字符对数组进行排序

    我有一个包含西班牙语语言名称的数组 lang ko coreano korean lang ar rabe arabic lang es espa ol spanish lang fr franc s french 我需要对数组进行排序并维
  • 跳过配置文件“main/binary-i386/Packages”的获取

    下午好 请告诉我我做错了什么 我刚在电脑上安装了Linux Ubuntu 但仍然对它一无所知 我尝试安装 PostreSQL 和 pgAdmin 我按照这个视频教程安装的https www youtube com watch v Vdzb7
  • Perl:打印传递给子例程的数组名称

    我将一个数组和一个标量传递给一个函数 以检查该值是否属于数组的一部分 如果它不是数组的一部分 则将其推送到数组 出于参考目的 它必须显示的是在推动它时必须显示数组的名称 这是我的代码 use v5 10 1 use strict use w
  • Angular2 Rxjs 404错误

    尝试启动 Angular2 应用程序时出现以下错误 Failed to load resource the server responded with a status of 404 Not Found angular2 polyfills
  • 文件写入在程序流程中应该发生时却没有发生

    这对我来说不是一个新问题 从 C 到 PERL 再到 Windows Mobile Windows XP 和其他 Windows 版本上的 Python 这个问题一直存在 让我心烦意乱 现在 在我最新的脚本中 这种情况再次发生 更具体地说
  • 使用 Expo 时如何忽略 fetch() 调用中的 SSL 证书问题?

    似乎反应原生无法在 fetch 调用期间禁用 SSL 验证 有人提到here https stackoverflow com questions 51130878 how to disable ssl check in react nati
  • 使用小数分隔符和可选的千位分隔符匹配数字的正则表达式

    我需要使用小数分隔符和千位分隔符 可选 来验证数字是否有效 我需要一个正则表达式 因为当前的代码不是由我完成的 使用的正则表达式无法正常工作 我的目标是修复它 因此以下组合是合法的 使用 作为小数点分隔符和 作为千位分隔符 10000 10
  • 如何在 Spring DM 中获取 BundleContext?

    我刚刚接触 Spring DM 我想访问 Bundlecontext 我的问题是我有一个包含 Activator 的捆绑包 但它没有 xml 配置文件 我无法触及这个捆绑包 那么我需要访问 BundleContext 和 serviceRe
  • CSS/Flexbox:仅显示容器中容纳的尽可能多的项目

    我的目标是构建一个面包屑样式组件 其中 显示项目的水平列表 每个项目都有最大宽度 如果宽度不足以显示项目 则从列表开头省略项目 优先考虑last列表中的项目 所有布局仅通过 CSS 实现 没有 JS 调整大小观察器等 Flexbox 似乎是
  • 如何检查Selenium WebDriver下载的文件?

    我使用 C 在 Selenium webdriver 中编写了一个自动化测试 其中一个步骤需要从服务器下载 XLSX 文件 如何验证文件是否已成功下载并获取其名称 Regards 我通过以下源代码找到了解决方案 string current
  • 包含服务器上任何位置的文件

    我的网站在生产服务器上完美运行 我已将其移至另一个网络服务器 VPS 让我用例子来解释一下 目录结构 includes header php business index php some other files index2 php 在我
  • 插入python数组以最小化元素之间的最大差异

    插值一维数组以使元素之间的最大差异最小化的简洁且可读的方法是什么 例如 如果我有数组 4 9 13 25 并且允许我再添加 1 个数字以最小化元素之间的最大差异 我会在 13 和 25 之间插入 19 最大差异现在是 6 而不是 12 当然
  • 在 MVC 中使用 ASP.NET 服务器控件?

    在我当前的项目中 我需要添加一项功能 允许用户查看其上传的 PDF 的缩略图 我找到了一个方便的组件 http www tallcomponents com pdfthumbnail aspx就实现了这一点 基本版本是免费的 但足以满足我当
  • 为什么原始类型有一个“类”,它是如何使用的?

    谈论 Java 7 您可以获得一个基本类型的类 如下所示 Class classOfInt int class 对于每一个 您都会得到一个名为原始类型的 类 int class gt int byte class gt byte doubl
  • 使用类包装器和 __new__ 装饰类

    Code import functools class MyInt1 int def new cls x value print MyInt1 new cls x value return super new cls x base 2 de
  • std::vector 的性能不佳是否是由于未调用 realloc 对数次数所致?

    EDIT 我又添加了两个基准测试 以比较 realloc 与 C 数组的使用以及 Reserve 与 std vector 的使用 从最后的分析看来 realloc 的影响很大 即使只调用了 30 次 检查文档 我猜这是因为 realloc
  • sql group_concat 和子查询

    我有 2 个 mysql 表 car model id int Primary Key title varchar id brand int FK to car brand table car car model relation many
  • 使用 Devise 添加 TOS 协议复选框

    我们正在为我们的会员使用设备 我们已将 tos agreement 字段 布尔值 添加到我们的成员架构中 并将其添加到views devise registrations new html haml 在Member模型中 我们有一个验证规则
  • 返回类型为空

    我正在使用 PHP 7 测试返回类型 我创建了一个简单的脚本来测试 PHP 7 的返回类型