- var_dump: documentation ( source)
<?php
interface SerializableInterface {};
interface SomeResizableInterface {};
interface IterableInterface {};
trait SomeSerializableTrait {};
trait SomeOtherSerializableTrait {};
class SomeContainer implements SerializableInterface, IterableInterface {
use SomeSerializableTrait;
}
class SomeOtherContainer extends SomeContainer implements SomeResizableInterface {
use SomeOtherSerializableTrait;
}
$someContainer = new SomeContainer;
$someOtherContainer = new SomeOtherContainer;
var_dump($someContainer instanceof SerializableInterface);
var_dump($someOtherContainer instanceof SerializableInterface);
var_dump($someOtherContainer instanceof SomeSerializableTrait);
var_dump($someOtherContainer instanceof SomeOtherSerializableTrait);
// type hint it
function testTrait(SomeSerializableTrait $container) {}
function testOtherTrait(SomeOtherSerializableTrait $container) {}
function testInterface(SomeResizableInterface $container) {}
testInterface($someOtherContainer);
testOtherTrait($someOtherContainer);
testTrait($someOtherContainer);