为什么php动态值不显示(echo)?
“echo$FacebookURL”不会显示,但如果我将其移动到最内部的“foreach”,它就会工作。我需要在所有foreach完成后显示。注:[以下条件有效]为什么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
$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循环?