public function validateIdentical($value, $options = [], array $context = [])
{
if (!is_array($options)) {
$options = ['compare' => $options];
}
if (!isset($context['data'][$options['compare']])) {
return false;
}
$compareValue = $context['data'][$options['compare']];
$matching = ['string' => 'string', 'int' => 'integer', 'float' => 'float', 'bool' => 'boolean'];
if (!empty($options['cast']) && array_key_exists($options['cast'], $matching)) {
// cast values to string/int/float/bool if desired
settype($compareValue, $matching[$options['cast']]);
settype($value, $matching[$options['cast']]);
}
return $compareValue === $value;
}