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