> Hi Tyson, > > The formatting of var_export is certainly a recurring complaint, and > previous discussions were not particularly open to changing current > var_export behavior, so adding a new function seems to be the way to > address the issue (the alternative would be to add a flag to var_export). > > I like the idea of the "one line" flag. Actually, this is the main part I'm > interested in :) With the one line flag, this produces the ideal formatting > for PHPT tests that want to print something like "$v1 + $v2 = $v3". None of > our current dumping functions are suitable for this purpose (json_encode > comes closest, but has edge cases like lack of NAN support.) > > Some note: > * You should drop the $return parameter and make it always return. As this > is primarily an export and not a dumping function, printing to stdout > doesn't make sense to me. > * For strings, have you considered printing them as double-quoted and > escaping more characters? This would avoid newlines in oneline mode. And > would allow you to escape more control characters. I also find the current > '' . "\0" . '' format for encoding null bytes quite awkward. > * I don't like the short_var_export() name. Is "short" really the primary > characteristic of this function? Both var_export_pretty and > var_export_canonical seem better to me, though I can't say they're great > either. I will refrain from proposing real_var_export() ... oops :P > > Regards, > Nikita >
Sorry for the plug, but you may be interested in getting inspiration from brick/varexporter: https://github.com/brick/varexporter In particular: - uses short array syntax always - doesn't output array keys for lists - can output lists of scalars on one line, under a flag: `INLINE_NUMERIC_SCALAR_ARRAY` - Benjamin