On 19/03/16 11:02, Fleshgrinder wrote:
>>> Properties need the ability to be void even after construction and it is
>>> >> up to the object to keep track and ensure state. Nullability is imho not
>>> >> necessary at all. So we are all in line here.
>> > 
>> > If the record I am working with identifies elements are incorrectly
>> > matched, then making a value 'void' is the correct action. We would just
>> > NULL that identifier and fire off a delete to the linked record in the
>> > database. Otherwise we have to create additional logic to handle that.
>> > 
> And *void* would translate to *unset($record->property)* and not to
> *$record->property = null*. This works with the current implementation
> and any *isset($record->property)* works too. As you can see,
> nullability was not required. :)

I did not say what we have now is actually right ... NULL state is
simply a mess :)

I need '$record->propertyX = null' because the property is part of the
data model. Unsetting propertyX so it does not exist means I have to
recreate it if I want to add it again, BUT if I am reading a new record
from the database I need a variable to put the propertyX into even if
that element of the result array is 'NULL'.

Going back to 'basics', I have an array of fields ( and using ADOdb
rather than PDO I have accurate data on what each field is! ).
Initializing the object view of that record I scan each field value and
validate the data, or skip it if the field is NULL. Do I need a
propertyX if it has no value - in my book yes - so that when building
the template to display the data I can include that this does not exist.
Could I use 'isset' instead - no - because THAT state says leave out the
field from the data display altogether. Could I create some arbitrary
default value that is 'not set' ... yes, but that is not how the years
of code base has been built! NULL is 'value not set' not 'this variable
does not exist'

-- 
Lester Caine - G8HFL
-----------------------------
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk
Rainbow Digital Media - http://rainbowdigitalmedia.co.uk

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

Reply via email to