W3docs

How to check if not instance of some class in symfony2

In Symfony2, you can check if an object is not an instance of a certain class using the "instanceof" keyword in combination with the "!" (not) operator.

The instanceof operator is standard PHP, not Symfony-specific. You can check if an object is not an instance of a certain class by combining instanceof with the ! (not) operator. For example:

Example of checking if an object is not an instance of a certain class

<?php

if (!($object instanceof SomeClass)) {
    // Do something
}

Watch a video course: Learn object oriented PHP

This checks if $object is not an instance of SomeClass. If the condition is true, the code inside the if block executes.

Note: Using parentheses !($object instanceof SomeClass) is recommended for readability and ensures consistent behavior across all PHP versions. Without them, older PHP versions may parse the expression differently.

Symfony usage example: Since instanceof is a core PHP operator, it works identically across all Symfony versions. You can use it in controllers, services, or form validators to handle different object types:

<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class DefaultController extends AbstractController
{
    public function index(Request $request): Response
    {
        if (!($request->request instanceof \Symfony\Component\HttpFoundation\ParameterBag)) {
            // Handle unexpected request data
        }

        return new Response('OK');
    }
}