- 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) {}
try {testInterface($someOtherContainer);} catch(Exception $e) {var_dump($e);}
try {testOtherTrait($someOtherContainer);} catch(Exception $e) {var_dump($e);}
try {testTrait($someOtherContainer);} catch(Exception $e) {var_dump($e);}