On Thu, Jan 03, 2008 at 07:36:48PM +0100, Markus Fischer wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hello,
> 
> Alain Williams wrote:
> > On Thu, Jan 03, 2008 at 12:21:21PM -0500, Sam Barrow wrote:
> >> I think E_WARNING would be appropriate. That's what happens when you
> >> omit an argument to a function right?
> > 
> > The other thing to note about type hinting is that it could result in 
> > faster code.
> > The value is checked and if needed converted (eg string -> integer) when the
> > function is called; it then need not be converted again when it is used in
> > the function. This will presumably be a win if the value is used more than 
> > once.
> 
> I don't think that automagic conversion of types is a good idea.
> 
> When the type hint says I want an integer, then only integer should be
> accepted; no casting should be done. It may give predictable results

Maybe the type checks should be stricter than normal.
What are we going to want here ?

* integer - possibly convert from:
  - string, in which case we just accept digits with an option + or -
    The important thing is that the *entire* string must convert
  - float - the standard truncate towards zero
  Nothing else
* float - possibly convert from:
  - integers - standard convertion
  - string - accept a float in the standard formats
    The important thing is that the *entire* string must convert
* boolean. At first glance this is easier as the convert to boolean for
  lots of types is well defined. In most cases the programmer would
  not be interested in a type check, so if he specifies it then we
  should be very restrictive.
* string - possibly convert from:
  - integers & float - standard convertion
  - boolean - standard convertion
  - objects - only if they have a __toString() method

-- 
Alain Williams
Linux Consultant - Mail systems, Web sites, Networking, Programmer, IT Lecturer.
+44 (0) 787 668 0256  http://www.phcomp.co.uk/
Parliament Hill Computers Ltd. Registration Information: 
http://www.phcomp.co.uk/contact.php
Chairman of UKUUG: http://www.ukuug.org/
#include <std_disclaimer.h>

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to