为什么php动态值不显示(echo)?

为什么php动态值不显示(echo)?,php,wordpress,Php,Wordpress,“echo$FacebookURL”不会显示,但如果我将其移动到最内部的“foreach”,它就会工作。我需要在所有foreach完成后显示。注:[以下条件有效] $acf_metas = ['FacebookURL','SpotifyURL']; foreach ($acf_metas as $acf_meta) { foreach ( get_field($acf_meta, 95013) as $k => $v) { ///set dynamic value

“echo$FacebookURL”不会显示,但如果我将其移动到最内部的“foreach”,它就会工作。我需要在所有foreach完成后显示。注:[以下条件有效]

$acf_metas = ['FacebookURL','SpotifyURL'];

foreach ($acf_metas as $acf_meta) {
    foreach ( get_field($acf_meta, 95013) as $k => $v) {
        ///set dynamic value
       ${$acf_meta}  = ( $k ==='main_url' ? $v .' -- ': false );
       // displays here ok 
       // echo $FacebookURL;
    }

}
//display dynamic value here does not display [the conditional above is valid]
echo $FacebookURL;

每次迭代时,您似乎都在覆盖foreach中的
$FacebookURL
值。这样,它在某个时间点变为
false
,并且不会
echo
任何输出。要在每次迭代中查看值,请执行以下操作

 var_dump($FacebookURL);

get\u字段($acf\u meta,95013)
返回什么?在您已经找到
$k==='main\u url'
之后,您可能正在覆盖它。只需将
从内部
foreach
中断开,或者如果
get_field()
返回单个值/对,则完全删除内部循环。如果要覆盖foreach中的值,请添加一个检查,如果该变量已设置,则不要覆盖。是否需要内部foreach循环?