Well, let's sort out what sorts of errors we're dealing with under E_STRICT, and then see what the options are. In general I'd suggest going with the most pretty-code-friendly solution in most cases, unless there's a dramatic speed difference.
- I don't believe there's any classes in Drupal, so var vs. public/private is a non-issue.
- Checking for variable existence. isset() is the standard way I know of, baring just always initializing a variable. The latter is not always possible, though. Does PHP have a cleaner default value syntax than the ternary operator? It works, but it's ugly. :-) (Python, I believe, can do x = y || z to use z as a default value if y is not set. I don't know if PHP has an equivalent.)
- NULL values. Where would these be an issue other than pulling data from the database? I'm of the mind that given MySQL's poor handling of null vs. default values, we should just always specify NOT NULL and a default for every field, period. That default value is then understood to be the "no value" flag.
Other thoughts?
Please identify the problems you find in Drupal while running. These above just seem to be made up somehow. Concentrate on real problems, do not made up possible problems please. Goba