在php中使用foreach之外的值
下面的代码是我在WordPress插件中的第一个代码:在php中使用foreach之外的值,php,wordpress,Php,Wordpress,下面的代码是我在WordPress插件中的第一个代码: 函数链接\u在\u bio\u init()中{ /*一些代码*/ foreach($obj['data']作为$post){ $pic_link=$post['link']; $i=子链接替换($pic链接,“,-1); $i=substr($i,-11); 寄存器设置( “第页”, “图片链接”。$i ); 添加\u设置\u字段( “图片链接-”.$i, $picu链接, “链接”, “第页”, “部分” ); } }正如Alex所说
函数链接\u在\u bio\u init()中{
/*一些代码*/
foreach($obj['data']作为$post){
$pic_link=$post['link'];
$i=子链接替换($pic链接,“,-1);
$i=substr($i,-11);
寄存器设置(
“第页”,
“图片链接”。$i
);
添加\u设置\u字段(
“图片链接-”.$i,
$picu链接,
“链接”,
“第页”,
“部分”
);
}
}
正如Alex所说,必须将变量传递给另一个函数。例如:
$var = functionOne();
$result = functionTwo($var);
function functionOne()
{
return 2;
}
function functionTwo($var)
{
echo $var; // This will output 2
}
另一种方法(如果可以避免的话,不建议使用),是使用globals:
function link_in_bio_init() {
global $i;
/* some codes */
foreach ($obj['data'] as $post) {
$pic_link=$post['link'];
$i = substr_replace($pic_link ,"",-1);
$i = substr($i, -11);
register_setting(
'page',
'pic_link_' . $i
);
add_settings_field(
'pic-link-' . $i,
$pic_link,
'links',
'page',
'section'
);
}
}
然后:
function links() {
global $i;
$pic_link_id_text = 'pic_link_' . $i;
$pic_link_id = esc_attr(get_option($pic_link_id_text, ''));
?>
<div id="titlediv">
<input id="title" type="text" name="<?php echo $pic_link_id_text ?>" value=<?php echo $pic_link_id; ?>">
</div>
<?php
};
函数链接(){
全球1美元;
$pic_link_id_text='pic_link.$i;
$pic_link_id=esc_attr(获取选项($pic_link_id_text');
?>
函数内部定义的变量仅在这些函数内部可用。请参阅。如果要将值从第一个函数传递到第二个函数,请返回它。@Alex Howansky我知道,连线部分是,当我在foreach外部定义$I时,没有区别。不应该有区别。$I
在函数外部与函数内部不同的是,$i
。您在哪里调用此函数links()
?@Martin Dimitrov在add\u settings\u field
数组中,第三个值是回调函数。用变量填充全局空间可能是你最不应该鼓励的事情…显示可能会有帮助…将值从第一个函数传递到第二个函数,使用全局返回是不好的做法。如果你想得到一个将变量传递到函数中,将其作为参数传递。如果要从函数中获取变量,请返回它。我完全同意,但由于我们不知道是否可以将变量传递到第二个函数,因此我给出了另一种解决方案。正如您所见,我说的第一件事是将变量传递到函数。不过,我将编辑答案包括一个大注释,警告除非绝对必要,否则不要使用globals。使用此解决方案,所有的$i
都是相同的。@ElyasBehroozizade如果不是这样,您到底在寻找什么?