- var_dump: documentation ( source)
<?php
interface SerializableInterface {}
interface SomeResizableInterface {}
interface IterableInterface {}
trait SomeSerializableTrait {function t2() {} }
trait SomeOtherSerializableTrait { function t() {} }
class SomeContainer implements SerializableInterface, IterableInterface {
use SomeSerializableTrait;
}
class SomeOtherContainer extends SomeContainer implements SomeResizableInterface {
use SomeOtherSerializableTrait;
}
$someContainer = new SomeContainer;
testInterface($someOtherContainer);
$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);