On 10 Aug 2011, at 02:10, Frank Thynne wrote: > 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"? The manual says... "Type Hints can only be of the object and array (since PHP 5.1) type. Traditional type hinting with int and string isn't supported." http://php.net/language.oop5.typehinting -Stuart -- Stuart Dallas 3ft9 Ltd http://3ft9.com/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php