In the interest of clarity and maintainability I would like to be able to write code that makes it clear what kind of arguments a function expects and what it returns. This is what I tried: function integer int_func(string $s) { // does something like, say, converting "five" to 5 } There are two problems: 1 The appearance of a type name before the function name is treated as a syntax error 2 Even if I forget about declaring the return type and code it instead as function int_func(string $s) { ... } I get a run-time error when I call the function with a string. (eg $var = int_func("five");) The error message says"Catchable fatal error: Argument 1 passed to int_func() must be an instance of string, string given". It seems that basic data types cannot be specified in ths way although (intstances of) classes can. I have successfully used the technique to catch run-time errors of wrong object types when testing, but am surprised that I can't use it to trap unexpected basic types - or at least to document what is expected. To confuse me a bit further, I can't find a definitive list of the basic type names. For example, is it "integer" or "int"? -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php