On Mon, February 27, 2012 8:29 am, Michael Morris wrote: > Both of these must be > declared formally (otherwise PHP assumes scalar)
I believe you mean "dynamic" or "loose" datatyping. Scalar would imply that you couldn't do this: array $a = array(); //force $a to always be array, and never anything else object $o = new Object(); //ditto, only object > // A tolerant variable. > integer $a = 3; > > // A strict variable > strict integer $b = 2; > > Tolerant variables silently cast values to their declared datatype. > Maybe they should raise E_NOTICE? Raising E_NOTICE is a backwards compatible "break" of little added value. Programmers who want their variables strongly typed will use strict, those who don't won't. A proposal that includes an explicit "loose" or "dynamic", which means the default behavior, but is self-documenting as intentional loose-ness would be a better idea, imho. The idea is sound, though I daresay the actual implementation may be problematic to the point of "impossible". PRESUMPTION: *ANY* strict datatype could also be NULL, to represent a failure condition... Otherwise, when you are out of RAM: strict $o = new Object(); //violates strict, because Object HAS to be NULL, as there is no RAM left for it to be an object. -- brain cancer update: http://richardlynch.blogspot.com/search/label/brain%20tumor Donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=FS9NLTNEEKWBE -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php