# Passing variables to a snippet - Again, I know

**URL:** <https://forum.getkirby.com/t/passing-variables-to-a-snippet-again-i-know/31805>\
**Category:** Questions\
**Tags:** v4\
**Created:** [June 7, 2024, 8:56am UTC](https://forum.getkirby.com/t/passing-variables-to-a-snippet-again-i-know/31805 "2024-06-07T08:56:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![yaidel](https://avatars.discourse-cdn.com/v4/letter/y/b38774/32.png) [@yaidel](https://forum.getkirby.com/u/yaidel)\
**Post date:** [June 7, 2024, 8:56am UTC](https://forum.getkirby.com/t/passing-variables-to-a-snippet-again-i-know/31805/1 "2024-06-07T08:56:41Z")

</div>

Hi everyone. I have read everywhere, even on similar topics here in the forum, and I can’t find where I’m messing things up. So any help will be welcome.

I have this Mixed Menu II (from the Cookbook) snippet, which I call from my `header.php` snippet.

This is the call line from the `header.php`

```php
<?php
$items = $site->nestedMenu()->toStructure();
$loc = "header";
?>
....
<?php snippet('menuitem-list', ['items' => $items, 'loc' => $loc]) ?>

```

And this is the `menuitem-list.php` snippet:

```php
<menu>
  <?php foreach ($items as $item): ?>
  <?php if ($item->excludeFromHeader()->isFalse()):?>
  <li<?= e($item->hasSubmenu()->isTrue() && $loc === "header", ' class="dropdown dropdown__arrow"') ?>>
    <a href="<?= $item->link()->toUrl() ?>"><?= $item->linkTitle()->or($item->link()->html()) ?></a>
    <?php $subMenuItems = $item->subMenu()->toStructure(); ?>
    <?php if ($item->hasSubmenu()->isTrue() && $subMenuItems->isNotempty()): ?>
    <?php snippet('menuitem-list', ['items' => $subMenuItems]) ?>
    <?php endif ?>
  </li>
  <?php endif ?>
  <?php endforeach ?>
</menu>

```

Note I have used the `$loc` variable to set the CSS clases to the `<li>` element (line 4).

This works.

However, when I try to use anywhere else the `$loc` variable, Kirby throws an error and says `$loc` is Unknown. For example, if I add at the top, before the menu tag, this:

```php
<?php echo $loc ?>

```

Then I get this

```auto
[Fri Jun 7 10:50:50 2024] Whoops\Exception\ErrorException: Undefined variable $loc in /home/yaidel/Kirby/plainkit-main/site/snippets/menuitem-list.php:2
Stack trace:
#0 /home/yaidel/Kirby/plainkit-main/site/snippets/menuitem-list.php(2): Whoops\Run->handleError()
#1 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(425): include('...')
#2 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(364): Kirby\Filesystem\F::loadIsolated()
#3 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(372): Kirby\Filesystem\F::Kirby\Filesystem\{closure}()
#4 /home/yaidel/Kirby/plainkit-main/kirby/src/Toolkit/Tpl.php(36): Kirby\Filesystem\F::load()
#5 /home/yaidel/Kirby/plainkit-main/kirby/src/Template/Snippet.php(172): Kirby\Toolkit\Tpl::load()
#6 /home/yaidel/Kirby/plainkit-main/kirby/config/components.php(301): Kirby\Template\Snippet::factory()
#7 /home/yaidel/Kirby/plainkit-main/kirby/src/Cms/App.php(1546): Kirby\Cms\Core->{closure}()
#8 /home/yaidel/Kirby/plainkit-main/kirby/config/helpers.php(531): Kirby\Cms\App->snippet()
#9 /home/yaidel/Kirby/plainkit-main/site/snippets/menuitem-list.php(10): snippet()
#10 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(425): include('...')
#11 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(364): Kirby\Filesystem\F::loadIsolated()
#12 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(372): Kirby\Filesystem\F::Kirby\Filesystem\{closure}()
#13 /home/yaidel/Kirby/plainkit-main/kirby/src/Toolkit/Tpl.php(36): Kirby\Filesystem\F::load()
#14 /home/yaidel/Kirby/plainkit-main/kirby/src/Template/Snippet.php(172): Kirby\Toolkit\Tpl::load()
#15 /home/yaidel/Kirby/plainkit-main/kirby/config/components.php(301): Kirby\Template\Snippet::factory()
#16 /home/yaidel/Kirby/plainkit-main/kirby/src/Cms/App.php(1546): Kirby\Cms\Core->{closure}()
#17 /home/yaidel/Kirby/plainkit-main/kirby/config/helpers.php(531): Kirby\Cms\App->snippet()
#18 /home/yaidel/Kirby/plainkit-main/site/snippets/header.php(18): snippet()
#19 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(425): include('...')
#20 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(364): Kirby\Filesystem\F::loadIsolated()
#21 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(372): Kirby\Filesystem\F::Kirby\Filesystem\{closure}()
#22 /home/yaidel/Kirby/plainkit-main/kirby/src/Toolkit/Tpl.php(36): Kirby\Filesystem\F::load()
#23 /home/yaidel/Kirby/plainkit-main/kirby/src/Template/Snippet.php(172): Kirby\Toolkit\Tpl::load()
#24 /home/yaidel/Kirby/plainkit-main/kirby/config/components.php(301): Kirby\Template\Snippet::factory()
#25 /home/yaidel/Kirby/plainkit-main/kirby/src/Cms/App.php(1546): Kirby\Cms\Core->{closure}()
#26 /home/yaidel/Kirby/plainkit-main/kirby/config/helpers.php(531): Kirby\Cms\App->snippet()
#27 /home/yaidel/Kirby/plainkit-main/site/templates/default.php(8): snippet()
#28 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(425): include('...')
#29 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(364): Kirby\Filesystem\F::loadIsolated()
#30 /home/yaidel/Kirby/plainkit-main/kirby/src/Filesystem/F.php(372): Kirby\Filesystem\F::Kirby\Filesystem\{closure}()
#31 /home/yaidel/Kirby/plainkit-main/kirby/src/Toolkit/Tpl.php(36): Kirby\Filesystem\F::load()
#32 /home/yaidel/Kirby/plainkit-main/kirby/src/Template/Template.php(163): Kirby\Toolkit\Tpl::load()
#33 /home/yaidel/Kirby/plainkit-main/kirby/src/Cms/Page.php(1017): Kirby\Template\Template->render()
#34 /home/yaidel/Kirby/plainkit-main/kirby/src/Cms/App.php(775): Kirby\Cms\Page->render()
#35 /home/yaidel/Kirby/plainkit-main/kirby/src/Cms/App.php(1189): Kirby\Cms\App->io()
#36 /home/yaidel/Kirby/plainkit-main/index.php(5): Kirby\Cms\App->render()
#37 /home/yaidel/Kirby/plainkit-main/kirby/router.php(14): require('...')
#38 {main}

```

But more strange even, the following does works:

```php
<?php echo isset($loc)? $loc: ''; ?>

```

Any clue what is going on here? Thanks in advance.

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [June 7, 2024, 9:28am UTC](https://forum.getkirby.com/t/passing-variables-to-a-snippet-again-i-know/31805/2 "2024-06-07T09:28:48Z")

</div>

> [@yaidel](#):
>
> ` <?php snippet('menuitem-list', ['items' => $subMenuItems]) ?>`

Because you don’t pass it along here!

---

<div class="post-metadata">

**Author:** ![yaidel](https://avatars.discourse-cdn.com/v4/letter/y/b38774/32.png) [@yaidel](https://forum.getkirby.com/u/yaidel)\
**Post date:** [June 7, 2024, 9:56am UTC](https://forum.getkirby.com/t/passing-variables-to-a-snippet-again-i-know/31805/3 "2024-06-07T09:56:27Z")

</div>

Ups! Yes, that was it. Thank you so much for your help, Sonja.
