PHP 7.2新增object类型提示是函数参数或返回值的严格守门人,只接受对象、拒绝null/字符串/数组等,语法须紧邻变量名无空格,不可用于new实例化。

要记住PHP 7.2新增的object类型提示,不能靠死背语法,得抓住它在函数签名中“守门人”的角色——只要看到object $param,就立刻反应:这里只收对象,其他一律拒之门外,连null、字符串、数组都不行,错了当场抛TypeError。
一眼识别object类型提示的位置
打开任意一个PHP 7.2+的函数定义,把光标停在参数列表里,找形如object $input或object $item这样的写法。它永远出现在冒号:左边,且【必须紧挨着变量名,中间不能有空格】。比如function handle(object$item)是对的,function handle(object $item)($前多空格)会报语法错误。
返回值位置也能用:function create(): object——这表示这个函数承诺一定返回某个对象,绝不会返回false或0。
和旧写法对比,强化记忆锚点
PHP 7.2之前,想表达“这里要对象”,只能写注释:/** @param mixed $input 实际应为对象 */,或者手动检查:if (!is_object($input)) { throw new InvalidArgumentException(); }。现在这两行全删掉,换成object $input——这就是最短路径。
立即学习“PHP免费学习笔记(深入)”;
注意:object不是类名,不能当实例化目标用,new object()是非法语法。它只活在类型声明里,不参与运行时构造。
三步现场验证法(动手即记)
① 新建test.php,写入:
<?php<br>function check(object $x): void { echo get_class($x); }<br>check(new stdClass()); // 输出:stdClass<br>// check("hello"); // 取消注释后运行,看Fatal error
② 保存并执行:php test.php,确认输出正常;
③ 取消check("hello")注释,再次执行——终端立刻爆出Fatal error: Uncaught TypeError。这声报错就是你大脑对object提示最深的一次刻印。



















