php 7.1 引入 void 返回类型,表示函数不返回任何有意义的值;仅允许 return; 或自然结束,禁止 return 值,调用时获取返回值得 null 但不应依赖;适用于纯副作用操作,不可用于联合类型。

PHP 7.1 引入了 void 返回类型声明,用于明确表示函数**不返回任何有意义的值**——它不是“没写 return”,而是语义上“不提供返回值”。设置它很简单,但关键在理解适用场景和限制。
基本语法:在函数名后加 : void
只需在函数声明末尾加上 : void 即可:
function log_message(string $msg): void { file_put_contents('app.log', $msg . PHP_EOL); }function swap(&$a, &$b): void { $tmp = $a; $a = $b; $b = $tmp; }
注意:函数体内只能用 return;(空返回)或自然结束,不能写 return $value;,否则会触发致命错误。
void 不等于 “返回 null”
声明为 void 的函数,调用时若尝试获取其返回值(如 $res = log_message("test");),结果是 null,且不会报错或警告——但这只是语言设计的兼容性处理,不代表你该去用这个 null。
- 它不接受
return null;,也不允许任何非空返回值 - 它的存在意义是告诉开发者和工具:“别依赖这个函数的返回值,它只做事情”
什么时候该用 void?
适合纯副作用(side-effect)操作,即函数的目的就是改变外部状态,而非计算结果:
- 写日志、发通知、更新缓存、插入数据库(不关心影响行数)
- 修改传入的引用参数(如
swap()) - 触发事件或清理资源(如
fclose()的封装)
反例:删除用户应返回 bool 或 int(是否成功/影响行数),而不是 void;否则调用方无法判断操作是否生效。
不能和联合类型混用
void 不能出现在联合类型中,比如 string|void 或 ?void 是非法的。它是一个独立的、排他性的返回类型。
- 要表达“可能成功也可能失败但无返回值”,更适合用
bool或抛出异常 - 要表达“可能有数据也可能没有”,应该用可空类型,如
?string、?array
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











