Re: How to type arguments

From: Date: Tue, 02 Dec 2008 20:49:37 +0000
Subject: Re: How to type arguments
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-284007@lists.php.net to get a copy of this message
Richard Heyes wrote:
I'm a french student, sorry for my mail : I want to know how can I type my functions' arguments ? It is heavy to do : function post($id) { $id=(int)$id; //...
PHP is loosely typed so strictly (...) speaking, that would be fine. However, you're best off making sure that what you've been given is what you think it is. Ergo, what you've written, is what I would do.
or tu put (int) before each use...
Not necessary to put it there for each use, just the first.
also worth noting that you can type-hint as long as the type you're hinting is an object and not a primitive: function post(SomeObject $obj) { // php will effectively throw a catchable fatal error if // $obj is not an instance of SomeObject } sadly you can't: function post(int $number) { // doesn't work for primitives // but then php has limited primitive types :( } so safest bet is as you mentioned but with at least some scalar checking first function post( $id ) { if( is_scalar($id) ) {
    return (int)$id;
} // if you get here you're id is an object, resource // or array and can't be cast to scalar type. }

« previous php.general (#284007) next »