On 26/05/2016 23:03, Lester Caine wrote:
On 26/05/16 22:38, Rowan Collins wrote:
// accessing $me->marriage or $me->death returns NULL (because they
allow nulls) but raises E_NOTICE
BUT DateTime currently will not store 'null' - it returns 'now' instead.
We end up having to store string or integer values because we can't
store a null date :(
That's exactly what ?DateTime is for - "either DateTime or Null", just
like in a database.
In most type systems, there is no such thing as "a null date" - if it's
null, it's not a date, it's a null value.
The exact question here then is in relation to just how one uses
'DateTime' in this situation? Or more accurately how one maintains the
'or Null' state when the type does not allow null itself?
I don't understand the question.
class Foo { ?DateTime $d }
$f = new Foo;
$f->d = null;
$f->d = new DateTime;
It's either a DateTime, or it's null.
Regards,
--
Rowan Collins
[IMSoP]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php