Как проверить, не является ли экземпляр какого-либо класса в symfony2
Я хочу выполнить некоторые функции, если сущность принадлежит нескольким классам, но не некоторым.
Существует функция, называемая instanceof.
Но есть ли что-то вроде
if ($entity !instanceof [User,Order,Product])
Ответ 1
Дайте им общий интерфейс, а затем
if (!$entity instanceof ShopEntity)
или остаться с
if (!$entity instanceof User && !$entity instanceof Product && !$entity instanceof Order)
Я бы избегал создания произвольных функций, чтобы сохранить некоторые символы в одном месте. С другой стороны, если вам это нужно "слишком часто", у вас может быть недостаток дизайна? (В смысле "слишком много случаев краев" или таких)
Это просто логичный и "грамматически" правильный письменный синтаксис.
Однако предложенный синтаксис сложный, потому что мы не указываем, какова именно область действия отрицания: сама переменная или вся конструкция "$ var instanceof someclass". Мы должны будем только полагаться здесь на точность оператора [Отредактировано, благодаря @Kolyunya].