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

为何包含get_field的函数返回NULL?外部直接调用get_field却正常

问题原因与解决办法

这是PHP的变量作用域问题:函数getImageId()内部默认无法访问外部定义的$prod_cats变量,导致get_field接收的参数无效,最终返回NULL。

解决方法

方法一:将变量作为参数传入函数(推荐)

修改函数定义,让它接收分类数据作为参数,调用时传入目标分类项:

$args = [
    'taxonomy'      => 'product_cat',
    'parent'         => 88,
];

$prod_cats = get_terms( $args );

function getImageId($term){
    var_dump( get_field( 'image', $term ) );
}

getImageId($prod_cats[0]); // 输出int(1854)
var_dump( get_field( 'image', $prod_cats[0] ) ); // int(1854)

方法二:在函数内部声明全局变量

在函数内通过global关键字引入外部的$prod_cats变量:

$args = [
    'taxonomy'      => 'product_cat',
    'parent'         => 88,
];

$prod_cats = get_terms( $args );

function getImageId(){
    global $prod_cats; // 声明使用全局变量
    var_dump( get_field( 'image', $prod_cats[0] ) );
}

getImageId(); // 输出int(1854)
var_dump( get_field( 'image', $prod_cats[0] ) ); // int(1854)

注意:优先使用方法一,全局变量容易引发命名冲突和代码维护问题,传参的方式逻辑更清晰、安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:20:44