我正在研究wordpress中的一些插件,並且我在函數中使用了下面的數組和foreach循環。PHP從foreach循環獲取函數中的變量
問題是,當$ locale_key變量在函數內部時,總是得到$ locale_key變量與$ code相同。
請幫忙。
$languages = array(
array('af', 'af', 'Afrikaans'),
array('ar', 'ar', 'العربية', 'rtl'),
array('az', 'az', 'Azərbaycan'),
array('be', 'bel', 'Беларуская мова'),
array('bg', 'bg_BG', 'български'),
array('bs', 'bs_BA', 'Bosanski'),
array('ca', 'ca', 'Català'),
array('cs', 'cs_CZ', 'Čeština'));
$lang = $_SESSION['lang'];
foreach ($languages as $key => $value) {
$locale_key = $languages[$key][1];
$code = $languages[$key][0];
echo $locale_key; // Here i get for example "bs_BA"
add_shortcode($code, function($atts, $content = null, $locale_key) {
global $lang;
echo $locale_key; // And then here i get "bs"
if ($lang == $locale_key) {
return $content;
}
});
}
那麼你的預期產出是什麼? – aldrin27
我的期望輸出是來自數組的$語言[$ key] [1],但我總是得到$語言[$ key] [0] – Antonio
你能告訴我們你需要什麼作爲輸出嗎? –