Herkes aşağıdaki fonksiyonu ile yanlış bir şey görüyor mu? (Edit: Bu çok yaygın bir kod yolu eklenecektir beri hayır, ben yanlış bir şey olduğunu düşünmüyorum, ben sadece çift-kontrol duyuyorum.)
function getNestedVar(&$context, $name) {
if (strstr($name, '.') === FALSE) {
return $context[$name];
} else {
$pieces = explode('.', $name, 2);
return getNestedVar($context[$pieces[0]], $pieces[1]);
}
}
Bu aslında dönüştürür:
$data, "fruits.orange.quantity"
içine:
$data['fruits']['orange']['quantity']
Bağlamda, bu ben Smarty inşa ediyorum bir şeklidir programı içindir. Ben bu yüzden dize bir anahtar tabanlı şeklinde olması gerekir, ve doğrudan Smarty Smarty değişkene erişemezsiniz da form için adı gerekir.