typehinting and NULL

From: Date: Wed, 21 Apr 2004 10:03:21 +0000
Subject: typehinting and NULL
Groups: php.internals 
Request: Send a blank email to internals+get-9450@lists.php.net to get a copy of this message
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

« previous php.internals (#9450) next »