public static function assertPropertyName($propertyName, $callee, $parameterPosition)
{
if (!is_string($propertyName) && !is_integer($propertyName) && !is_float($propertyName) && !is_null($propertyName)) {
throw new static(sprintf('%s() expects parameter %d to be a valid property name or array index, %s given', $callee, $parameterPosition, gettype($propertyName)));
}
}