Sorry, I used unset in the same way type casting works, not as in
unset() ... Common gotcha: http://php.net/unset#example-4824

Here's how the manual refers to it:
http://php.net/type-juggling

(int), (integer) - cast to integer
(bool), (boolean) - cast to boolean
(float), (double), (real) - cast to float
(string) - cast to string
(array) - cast to array
(object) - cast to object
(unset) - cast to NULL (PHP 5)

I understood what you meant but I'd rather have it be more verbose but
more clear as well.
I read your idea, as "Cast to int, or accept NULL" I rather
use/read that as (int unset) rather than (int?)

>  > BTW: Order would equal what is type casted OR simply accepted!
>
> Do you have any examples where this could be useful?

The same example you gave of data that comes from a database NULL
would be retained, else it's type casted to int.

// Cast to int, accept null
(int unset) 13              // 13
(int unset) ''                // 0
(int unset) 0               // 0
(int unset) NULL         // NULL
(int unset) '342.3Test'  // 342

My view is, if you use the naming as it's currently used in type
casting, you also get additional functionality:

// Cast to string, accept bool
(string bool) 'test'     // 'test'
(string bool) 123      // '123'
(string bool) TRUE   // TRUE
(string bool) FALSE // FALSE
(string bool) NULL   // ''

// Cast to string, accept array
(string array) 'test'     // 'test'
(string array) 123      // '123'
(string array) TRUE   // '1'
(string array) array(1, 2, 3)  // array(3) { [0]=> int(1) [1]=>
int(2) [2]=> int(3) }

I find this way more useful/complete/readable than what you proposed.

Best regards,
~ Daniel Macedo

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

Reply via email to