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

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.1207614003.txt.gz · Last modified: 2017/09/22 13:28 (external edit)