diff --git a/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php index d9df942c6af30..ca8f2883492cb 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php @@ -91,7 +91,14 @@ public function buildForm(FormBuilderInterface $builder, array $options) $emptyData = $form->getConfig()->getEmptyData(); if (false === FormUtil::isEmpty($emptyData) && array() !== $emptyData) { - $data = is_callable($emptyData) ? call_user_func($emptyData, $form, $data) : $emptyData; + if (!is_callable($emptyData) || (is_scalar($emptyData) && ( + array_key_exists($emptyData, $form->getConfig()->getOption('choices')) || + in_array($emptyData, $form->getConfig()->getOption('choices')) + ))) { + $data = $emptyData; + } else { + $data = call_user_func($emptyData, $form, $data); + } } }