Hello Andi, Zeev, internals,

  after readin the PHP articles on PHP5 and the rerequested typehinting
for arrays i once again thought about typehints and NULL.

At the moment typehints allow NULL always. That is complete nonsense
because NULL doesn't pass any instance-of check. And in general there
is only one operation that leagally returns true when working with NULL
values. That is NULL === NULL. In php NULL == NULL simply returns true
because NULL equals zero. Hence:
        $ php -r 'var_dump(NULL == NULL);'
        bool(true)
        $ php -r 'var_dump(NULL == 0);'
        bool(true)
        $ php -r 'var_dump(NULL === NULL);'
        bool(true)
AND:
    $ php -r '$o=new stdClass; var_dump($o instanceof stdClass);'
    bool(true)
    $ php -r 'var_dump(NULL instanceof stdClass);'
    bool(false)

At least we must find a way to decide whether or not NULL should be allowed
NULL. Yes enforcing NOL NULL would make too many people complain they cannot
pass a NULL by ref to have it returned as an instance of the class - though
reconsider your code should be the answer here. Looking up the discussions
about the issue we already had a solution for this from Zeev.

function allowingNULL(object $val = NULL)
function preventNULL(object $val)

any thoughts?

Just to stress out: The current situation doesn't respect generally accepted
inheritance rules.

Best regards,
 Marcus

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

Reply via email to