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

PHP能否在一行代码中通过多个操作完成变量赋值?

PHP一行完成多操作变量赋值的实现方法

PHP目前(包括最新版本)并不支持你伪代码里那种=> prev_result(...)的链式引用写法,但可以用其他语法在一行内完成目标赋值,不需要中间变量,以下是几种实用方案:

  • 推荐方案:使用array_pop()
    直接对explode返回的临时数组调用array_pop(),它会取出数组最后一个元素,若数组为空则返回null,刚好和原代码逻辑一致:

    $short_class_name = array_pop(explode("\\", $class_name));
    
  • 使用end()函数
    end()会将数组指针移到最后一个元素并返回它,空数组时返回false,配合?? null可以把false转为null,和原代码效果一致:

    $short_class_name = end(explode("\\", $class_name)) ?? null;
    

    注意:end()会修改数组内部指针,但这里操作的是临时数组,不会影响其他变量,所以没问题。

  • 严谨型匿名函数写法(PHP 8.1+)
    如果想避免潜在的索引问题,同时用array_key_last()精准获取最后一个键名,可以用匿名函数包裹逻辑:

    $short_class_name = (fn($cn) => ($p = explode("\\", $cn))[$p ? array_key_last($p) : 0] ?? null)($class_name);
    

    这种写法逻辑更严谨,但可读性稍弱,适合对索引安全要求高的场景。

内容的提问来源于stack exchange,提问作者ProtectedVoid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:23:11