PHP Functions
Enforcing Types of Function Arguments
Problem
You want to ensure argument values have certain types.Solution
Use type hints on the arguments when you define your function. A type hint goes before the parameter name in a function declaration:function drink_juice(Liquid $drink) {
/* ... */
}
function enumerate_some_stuff(array $values) {
/* ... */
}
Discussion
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 type hinted parameter that does not satisfy the type hint, PHP triggers an E_RECOVERABLE_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_RECOVERABLE_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:
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";
}
}
}
No comments:
Post a Comment