rfc:typehint

This is an old revision of the document!


Request for Comments: Return value and parameter type hint

  • Version: 1.0
  • Date: 2008-04-07
  • Author: Felipe Pena felipensp@gmail.com
  • Status: Under Discussion

BC Break

New tokens (new keywords)
  1. T_INTEGER (Keywords: int, integer)
  2. T_BOOLEAN (Keywords: bool, boolean)
  3. T_DOUBLE (Keywords: real, float, double)
  4. T_OBJECT (Keyword: object)
  5. T_RESOURCE (Keyword: resource)
  6. T_STR (Keyword: string)

Parameter type hint - Examples

integer / int

function test(integer $value) {
}
 
test(1);
test("1337");
test(-1);
test("1."); // Catchable fatal error: Argument 1 passed to test() must be an integer, string given
 
function test(integer $value = '1') {
}
// Fatal error: Default value for parameters with integer type hint can only be the exact type or NULL

double / float / real

function test(double $value) {
}
 
test(1.1);
test(.1);
test("1.");
test("1337"); // Catchable fatal error: Argument 1 passed to test() must be an double, string given
 
function test(double $value = '1') {
}
// Fatal error: Default value for parameters with double type hint can only be the exact type or NULL

bool / boolean

function test(bool $value = true) {
}
 
test(false);
test(0);
test(1);
test('0');
test('1');
test('');
test(null); // Catchable fatal error: Argument 1 passed to test() must be an boolean, null given

resource

function test(resource $value) {
}
 
test(fopen(__FILE__, 'r'));
test(NULL); // Catchable fatal error: Argument 1 passed to test() must be an resource, null given

object

function test(object $value) {
}
 
test(new stdclass);
test(NULL); // Catchable fatal error: Argument 1 passed to test() must be an object, null given
 
function test(object $value = 1) {
}
// Fatal error: Default value for parameters with object type hint can only be the exact type or NULL

Proposal and Patch

Parameter type hint:

rfc/typehint.1207618418.txt.gz · Last modified: 2017/09/22 13:28 (external edit)