Introduced with PHP 5.1, it basically looks like this:
function setWriter( ObjectWriter $objwriter=null ) {
$this->writer = $objwriter;
}
Where the $objwriter has to be either null or of the type ObjectWriter, or it will produce a runtime error. The =null part is optional.
Advantages:
Forces to pass the right kind of object to a method, saving us the trouble of testing before passing. It also makes the code clearer regarding method signature.
Disadvantage:
Since it only runs at runtime, if it is buried within conditional statements that only run on xmas, you may get a call on your holiday to get your budd to the office and fix it.
Not that you can’t use type hinting with primitives.