- Output for 5.4.2 - 5.4.45, 5.5.24 - 5.5.29, 5.6.7 - 5.6.13
- Fatal error: Interface function BazInterface::baz() cannot contain body in /in/Cg0do on line 13
Process exited with code 255.
<?php
interface OriginalContract
{
}
interface MoreSpecificContract extends OriginalContract
{
}
interface BazInterface
{
public function baz(OriginalContract $item) {}
}
class Foo implements BazInterface
{
public function baz(OriginalContract $item) {}
}
class Bar implements BazInterface
{
public function baz(MoreSpecificContract $item) {}
}
/*
I actually want Bar to accept only instances of MoreSpecificContract
Since it extends OriginalContract, it should be valid imho
The only way I can now do this is
class Bar extends Foo
{
public function baz(OriginalContract $item)
{
if (($item instanceof MoreSpecificContract) === false) {
throw new Exception("Expected something more specific");
}
// do some more specific stuff
}
}
*/