كيف يمكنني التحقق لمعرفة ما إذا تم تعيين متغير Smarty بالفعل؟

StackOverflow https://stackoverflow.com/questions/350129

  •  20-08-2019
  •  | 
  •  

سؤال

كيف يمكنني التحقق لمعرفة ما إذا كان قد تم بالفعل تعيين قيمة معينة لـ Smarty وإذا لم يتم تعيين قيمة (افتراضية)؟

إجابة:

if ($this->cismarty->get_template_vars('test') === null) {
   $this->cismarty->assign('test', 'Default value');
}
هل كانت مفيدة؟

المحلول

ذكي 2

if ($smarty->get_template_vars('foo') === null) 
{
   $smarty->assign('foo', 'some value');
}

ذكي 3

if ($smarty->getTemplateVars('foo') === null) 
{
   $smarty->assign('foo', 'some value');
}

لاحظ أن ل ذكي 3, ، سيكون عليك استخدامها $smarty->getTemplateVars بدلاً من.

نصائح أخرى

وسوف get_template_vars() يعود لاغيا إذا لم تكن تعيين متغير، حتى تتمكن من القيام

if ($smarty->get_template_vars('test') === null) {
    echo "'test' is not assigned or is null";
}

ولكن ستفشل هذا الاختيار إذا كان لديك متغير تعيين ولكن تعيين لاغيا، وفي هذه الحالة يمكن أن تفعله

$tmp = $smarty->get_template_vars();
if (!array_key_exists('test', $tmp)) {
    echo "'test' is not assigned";
}

ومتأكد من يمكنك القيام به:

if (!isset($smarty['foo'])) 
{
    $smarty->assign('foo', 'some value');
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top