You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP7.3/7.4如何单行判断对象存在并获取其属性?

PHP 7.3/7.4 中实现类似 Nullsafe 运算符的写法

PHP 7.3 和 7.4 不支持 ?-> 这种 Nullsafe 运算符——这个语法是在 PHP 8.0 才正式引入的,所以你在这两个版本里用$object?->property必然会报错。

如果要在 7.3/7.4 里实现“单行判断对象是否存在并获取属性”的需求,可以用以下几种替代方案:

  • 三元运算符结合 null 合并
    先判断对象是否存在,再用 null 合并运算符处理属性不存在的情况:

    echo isset($object) ? $object->property ?? null : null;
    

    要是你能确定对象存在时属性一定有值,也可以简化成:

    echo isset($object) ? $object->property : null;
    
  • 针对数组的简化写法
    你例子里提到数组['property' => 'success']的情况,直接用 null 合并要先确保数组本身非空,否则会报错:

    echo is_array($object) ? $object['property'] ?? null : null;
    
  • 封装工具函数(复用性更高)
    如果需要频繁做这类判断,封装个函数会更方便,还能同时支持对象和数组:

    function getSafeValue($data, $key) {
        if ($data === null) return null;
        if (is_object($data)) return $data->$key ?? null;
        if (is_array($data)) return $data[$key] ?? null;
        return null;
    }
    
    // 使用示例
    echo getSafeValue($object, 'property');
    

当然,最省心的解决办法是升级到 PHP 8.0 及以上版本,这样就能直接用$object?->property这种简洁的 Nullsafe 语法了。

内容的提问来源于stack exchange,提问作者Ondra Lohniský

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:20:38