You want to ensure argument values have certain types.
Use type hints on the arguments when you define your function. A type hint goes before the parameter name in a function declaration:
1 2 3 4 5 6 7 |
function drink_juice(Liquid $drink) { /* ... */ } function enumerate_some_stuff(array $values) { /* ... */ } |
A type hint can be a class name, an interface name, the keyword array (since PHP 5.1) or the keyword callable (since PHP 5.4).
If, at runtime, a value is passed for a typehinted parameter that does not satisfy the type hint, PHP triggers an E_RECOVERA BLE_ERROR error.
If you give a type-hinted parameter a default value of null, either the null value or a value of the proper type is allowed.
In the following code, the must_be_an_array() function requires an array-typed parameter.
Anything else will trigger an E_RECOVERA BLE_ERROR error. The array_or_null_is_ok() function, however, is more forgiving.
If you provide a parameter, it must be an array or null. If you omit the parameter, the $fruits local variable in the function will be equal to null:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function must_be_an_array(array $fruits) { foreach ($fruits as $fruit) { print "$fruit\n"; } } function array_or_null_is_ok(array $fruits = null) { if (is_array($fruits)) { foreach ($fruits as $fruit) { print "$fruit\n"; } } } |